Mongodb 4.0 mongodbデータベースベース
117445 ワード
mongodbデータベースベース 一、概説 1、mongodb概要 2、MongoDBの特徴 3、MongoDB適用シーン 二、mongodb 4.0 をインストールする 1、mongodb を起動する2、mongodb を閉じる
三、多例 四、データベース基本操作 五、インポートエクスポート 六、バックアップ・リカバリ 七、クローン 1、クローンデータベース 2、クローンセット(表)
一、概説
1、mongodbの概要
MongoDBは、プラットフォーム間でドキュメント向けのデータベースです.高性能、高可用性を実現し、容易に拡張できる分散ファイルストレージベースのオープンソースデータベースシステムであり、高負荷の場合、より多くのノードを追加することでサーバのパフォーマンスを保証します.
ビッグデータ時代において、ビッグデータ量の処理はデータベースを考慮する最も重要な原因の一つとなっている.MongoDBの主な目標は、できるだけデータベースのパフォーマンスを向上させることであり、MongoDBの設計を大きく決定します.MongoDBは、メモリ・リソースをキャッシュとして使用して最大限のパフォーマンスを選択し、クエリーのために最も高速なインデックスを自動的に選択します.MongoDBは、データベースをできるだけ簡素化し、クライアントにできるだけ多くの操作を渡すことで、MongoDBが優れたパフォーマンスを維持できる理由の一つです.
MongoDBは非リレーショナル・データベース(NoSQL)の中で最も機能が豊富で、最もリレーショナル・データベースに似ています.リレーショナル・モデルを使用しないのは、より良い拡張性を得るためであり、MongoDBには「行」の概念はありません.その実行方法は主に2つの概念に基づいています.集合(collection)とドキュメント(document)です.
2、MongoDBの特徴
Mongoは高性能で、オープンソースで、モードのないドキュメント型データベースであり、多くのシーンで従来のリレーショナル型データベースやキー/値格納方式に代わることができます.
1、集合向けの記憶:対象及びJSON形式のデータを記憶するのに適している.
2、MongoDBはインストールが簡単で、ドキュメント向けの記憶機能を提供し、操作が容易である.
3、MongoDBはレプリケーション、高可用性と自動スライス機能を提供する.負荷が増加すると(より多くのストレージスペースとより強い処理能力が必要)、コンピュータネットワーク内の他のノードに分散することができます.これがいわゆるスライスです.
4、MongoDBは豊富なクエリー式をサポートする.
5、効率的な伝統的な記憶方式:バイナリデータと大型オブジェクト(写真や画像など)をサポートする.
3、MongoDB適用シーン
MongoDBは、Webアプリケーションに拡張性の高い高性能データストレージソリューションを提供します.MongoDBの主な適用分野は、Webサイトデータ、分散シーン、データキャッシュ、JSONドキュメントフォーマットストレージです.ビッグデータ量、高同時性、弱いトランザクションに適したインターネットアプリケーションは、数百万から10億レベルのデータ処理能力を内蔵し、Web 2.0とモバイルインターネットアプリケーションのデータストレージの要求をよく満たすことができます.
二、mongodb 4.0のインストール
ローカルyumソースの構成
yumインストール
プロファイルの変更
1、mongodbを起動する
mongodbの起動
直接mongoはmongo shellに入ります:
2、mongodbを閉じる
備考:mongodコマンドのshutdownオプションは、MongoDBサービスをきれいに閉じることができます.以前にMongoDBサービスを開始した場合、「Crtl+C」サービスを使用するとクローズされ、現在進行中の操作が完了するのを待つため、依然としてクリーンなクローズ方式です.
三、多実例
デフォルトのプロファイルをコピーし、mongod 2.confと名付け、プロファイルを変更します.ログファイルとデータファイル、ポートも変更します.
起動後、次のコマンドで2番目のインスタンスに進みます.
四、データベースの基本操作
データベース・バージョンの表示
現在のデータベースの表示
データベースの表示
新規infoコレクション(テーブル)
表を表示する2つの方法
infoテーブルのデータの表示
データを挿入
infoテーブルのデータの表示
別名の定義
id=1のレコードの詳細を表示
データ型の表示
id=1のレコードのnameをtomに変更
テーブルの削除
データベースの削除
infoテーブルのレコードを表示
infoテーブルのレコードを100に追加(forループが必要)
五、インポートエクスポート
-d:データベースの指定-c:テーブルの指定-o:エクスポートファイルの指定–file:どのファイルからインポートするかの指定
schoolライブラリのinfoテーブルをエクスポートします.
エクスポート・ファイルを表示するには、次の手順に従います.
インポート:(新しいテーブルinfo 2をインポートし、テーブルが存在しない場合、このテーブルを新規作成します)
データベース検証へのアクセス
条件ベースのエクスポート:(info表裏id=10のレコードをエクスポート)
クエリー条件オペレータ:(=)=======================================================================================
エクスポート・ファイルを表示するには、次の手順に従います.
六、バックアップ・リカバリ
バックアップコマンドmongodumpリカバリコマンドmongorestore
shellコマンドラインで操作する必要があります
バックアップ・ディレクトリからデータベースをリカバリします.データベースが存在しない場合は自動的に作成されます.
データベース検証へのアクセス
七、クローン
1、クローンデータベース
db.copyDatabaseは4.0以降は廃止されましたが、依然として成功しています.
2、クローン集合(表)
複数インスタンスを作成して複数インスタンスのデータディレクトリを作成するには
コンフィギュレーションファイルの変更(省略、前述)起動インスタンス3とインスタンス4
リスニングポートを表示すると、mongodbインスタンスが4つ起動していることがわかります.
クローンテーブルはインスタンスに入り、データベースに入り、クローンの操作db.runCommandを実行する必要があります.
一、概説
1、mongodbの概要
MongoDBは、プラットフォーム間でドキュメント向けのデータベースです.高性能、高可用性を実現し、容易に拡張できる分散ファイルストレージベースのオープンソースデータベースシステムであり、高負荷の場合、より多くのノードを追加することでサーバのパフォーマンスを保証します.
ビッグデータ時代において、ビッグデータ量の処理はデータベースを考慮する最も重要な原因の一つとなっている.MongoDBの主な目標は、できるだけデータベースのパフォーマンスを向上させることであり、MongoDBの設計を大きく決定します.MongoDBは、メモリ・リソースをキャッシュとして使用して最大限のパフォーマンスを選択し、クエリーのために最も高速なインデックスを自動的に選択します.MongoDBは、データベースをできるだけ簡素化し、クライアントにできるだけ多くの操作を渡すことで、MongoDBが優れたパフォーマンスを維持できる理由の一つです.
MongoDBは非リレーショナル・データベース(NoSQL)の中で最も機能が豊富で、最もリレーショナル・データベースに似ています.リレーショナル・モデルを使用しないのは、より良い拡張性を得るためであり、MongoDBには「行」の概念はありません.その実行方法は主に2つの概念に基づいています.集合(collection)とドキュメント(document)です.
2、MongoDBの特徴
Mongoは高性能で、オープンソースで、モードのないドキュメント型データベースであり、多くのシーンで従来のリレーショナル型データベースやキー/値格納方式に代わることができます.
1、集合向けの記憶:対象及びJSON形式のデータを記憶するのに適している.
2、MongoDBはインストールが簡単で、ドキュメント向けの記憶機能を提供し、操作が容易である.
3、MongoDBはレプリケーション、高可用性と自動スライス機能を提供する.負荷が増加すると(より多くのストレージスペースとより強い処理能力が必要)、コンピュータネットワーク内の他のノードに分散することができます.これがいわゆるスライスです.
4、MongoDBは豊富なクエリー式をサポートする.
5、効率的な伝統的な記憶方式:バイナリデータと大型オブジェクト(写真や画像など)をサポートする.
3、MongoDB適用シーン
MongoDBは、Webアプリケーションに拡張性の高い高性能データストレージソリューションを提供します.MongoDBの主な適用分野は、Webサイトデータ、分散シーン、データキャッシュ、JSONドキュメントフォーマットストレージです.ビッグデータ量、高同時性、弱いトランザクションに適したインターネットアプリケーションは、数百万から10億レベルのデータ処理能力を内蔵し、Web 2.0とモバイルインターネットアプリケーションのデータストレージの要求をよく満たすことができます.
二、mongodb 4.0のインストール
ローカルyumソースの構成
[root@mongodb yum.repos.d]# vim /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
yumインストール
[root@mongodb yum.repos.d]# yum -y install mongodb-org
[root@mongodb yum.repos.d]# whereis mongod <----- mongodb
mongod: /usr/bin/mongod /etc/mongod.conf /usr/share/man/man1/mongod.1
プロファイルの変更
[root@mongodb yum.repos.d]# vim /etc/mongod.conf
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log <----
storage:
dbPath: /var/lib/mongo <---
journal:
enabled: true <----- true, , , dbpath journal 。
processManagement:
fork: true # fork and run in background // , true
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
net:
port: 27017
bindIp: 0.0.0.0 // , ,127.0.0.1 , IP
1、mongodbを起動する
mongodbの起動
[root@mongodb yum.repos.d]# systemctl start mongod
[root@mongodb yum.repos.d]# netstat -anpt | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 20265/mongod
直接mongoはmongo shellに入ります:
[root@mongodb ~]# mongo
MongoDB shell version v4.0.20
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session {
"id" : UUID("760a7212-96f3-4d9b-b426-94b331ad2b10") }
MongoDB server version: 4.0.20
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
……
> show dbs <-----
admin 0.000GB
config 0.000GB
local 0.000GB
> exit <----- , ctrl+c
bye
[root@mongodb ~]#
2、mongodbを閉じる
[root@mongodb ~]# systemctl stop mongod <----
> db.shutdownServer();
[root@mongodb ~]# mongod --shutdown --dbpath /data/mongodb/mongo
備考:mongodコマンドのshutdownオプションは、MongoDBサービスをきれいに閉じることができます.以前にMongoDBサービスを開始した場合、「Crtl+C」サービスを使用するとクローズされ、現在進行中の操作が完了するのを待つため、依然としてクリーンなクローズ方式です.
三、多実例
デフォルトのプロファイルをコピーし、mongod 2.confと名付け、プロファイルを変更します.ログファイルとデータファイル、ポートも変更します.
[root@mongodb etc]# cp -p mongod.conf mongod2.conf
[root@mongodb etc]# vim mongod2.conf
systemLog:
path: /data/mongodb/mongod2.log
storage:
dbPath: /data/mongodb/mongo2
net:
port: 27018
[root@mongodb etc]#
[root@mongodb etc]# mkdir -p /data/mongodb <----
[root@mongodb etc]# cd /data/mongodb/
[root@mongodb mongodb]# mkdir mongo
[root@mongodb mongodb]# ls
mongo
[root@mongodb mongodb]# touch mongod2.log
[root@mongodb mongodb]# chmod 777 mongod2.log <----
[root@mongodb mongodb]# ls
mongo mongod2.log
[root@mongodb mongodb]# which mongod
/usr/bin/mongod
[root@mongodb mongodb]# mongod -f /etc/mongod2.conf <---
about to fork child process, waiting until server is ready for connections.
forked process: 20510
child process started successfully, parent exiting
起動後、次のコマンドで2番目のインスタンスに進みます.
[root@mongodb mongodb]# mongo --port 27018 <-----
四、データベースの基本操作
データベース・バージョンの表示
> db.version()
4.0.20
> use school; // ,
switched to db school
現在のデータベースの表示
> db
school
データベースの表示
> show dbs; //
admin 0.000GB
config 0.000GB
local 0.000GB
新規infoコレクション(テーブル)
> db.createCollection('info') // info , ; ,
{
"ok" : 1 }
> show dbs; // school
admin 0.000GB
config 0.000GB
local 0.000GB
school 0.000GB
表を表示する2つの方法
> show collections //
info
> show tables; //
info
infoテーブルのデータの表示
> db.info.find() //
データを挿入
> db.info.insert({
"id":1,"name":"zhangsan","score":90,"hobby":["game","music","sport"]})
WriteResult({
"nInserted" : 1 })
infoテーブルのデータの表示
> db.info.find()
{
"_id" : ObjectId("5f56eafbbb50f14e91ed31e0"), "id" : 1, "name" : "zhangsan", "score" : 90, "hobby" : [ "game", "music", "sport" ] }
別名の定義
> a=db.info.find() // a
{
"_id" : ObjectId("5f56eafbbb50f14e91ed31e0"), "id" : 1, "name" : "zhangsan", "score" : 90, "hobby" : [ "game", "music", "sport" ] }
id=1のレコードの詳細を表示
> db.info.findOne({
"id":1})
{
"_id" : ObjectId("5f56eafbbb50f14e91ed31e0"),
"id" : 1,
"name" : "zhangsan",
"score" : 90,
"hobby" : [
"game",
"music",
"sport"
]
}
データ型の表示
> typeof(a.id)
number
> typeof(a.name)
string
> typeof(a.score)
number
> typeof(a.hobby)
object
id=1のレコードのnameをtomに変更
> db.info.update({
"id":1},{
$set:{
"name":"tom"}})
WriteResult({
"nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> a=db.info.find()
{
"_id" : ObjectId("5f56eafbbb50f14e91ed31e0"), "id" : 1, "name" : "tom", "score" : 90, "hobby" : [ "game", "music", "sport" ] }
テーブルの削除
> db.createCollection('test') // test
{
"ok" : 1 }
> show tables;
info
test
> db.test.drop() // test
true
> show tables;
info
データベースの削除
> use myschool // myschool
switched to db myschool
> db.createCollection('a')
{
"ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
myschool 0.000GB
school 0.000GB
> db.dropDatabase() // , use
{
"dropped" : "myschool", "ok" : 1 }
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
school 0.000GB
infoテーブルのレコードを表示
> use school
switched to db school
> show tables
info
> db.info.count()
1
infoテーブルのレコードを100に追加(forループが必要)
> for(var i=2;i<=100;i++)db.info.insert({
"id":i,"name":"jack"+i}})
WriteResult({
"nInserted" : 1 })
// for var
> db.info.find()
{
"_id" : ObjectId("5f56eafbbb50f14e91ed31e0"), "id" : 1, "name" : "tom", "score" : 90, "hobby" : [ "game", "music", "sport" ] }
{
"_id" : ObjectId("5f570266a1451cb5e42060c4"), "id" : 2, "name" : "jack2" }
{
"_id" : ObjectId("5f570266a1451cb5e42060c5"), "id" : 3, "name" : "jack3" }
{
"_id" : ObjectId("5f570266a1451cb5e42060c6"), "id" : 4, "name" : "jack4" }
{
"_id" : ObjectId("5f570266a1451cb5e42060c7"), "id" : 5, "name" : "jack5" }
{
"_id" : ObjectId("5f570266a1451cb5e42060c8"), "id" : 6, "name" : "jack6" }
……
{
"_id" : ObjectId("5f570266a1451cb5e42060d6"), "id" : 20, "name" : "jack20" }
Type "it" for more
// 20 , it
> it
……
{
"_id" : ObjectId("5f570266a1451cb5e4206126"), "id" : 100, "name" : "jack100" }
五、インポートエクスポート
-d:データベースの指定-c:テーブルの指定-o:エクスポートファイルの指定–file:どのファイルからインポートするかの指定
schoolライブラリのinfoテーブルをエクスポートします.
[root@mongodb ~]# mongoexport -d school -c info -o /opt/school.json
2020-09-08T11:56:53.466+0800 connected to: localhost
2020-09-08T11:56:53.467+0800 exported 1 record
エクスポート・ファイルを表示するには、次の手順に従います.
[root@mongodb ~]# vim /opt/school.json
{
"_id":{
"$oid":"5f56eafbbb50f14e91ed31e0"},"id":1.0,"name":"tom","score":90.0,"hobby":["game","music","sport"]}
インポート:(新しいテーブルinfo 2をインポートし、テーブルが存在しない場合、このテーブルを新規作成します)
[root@mongodb ~]# mongoimport -d school -c info2 --file /opt/school.json
2020-09-08T11:58:46.720+0800 connected to: localhost
2020-09-08T11:58:46.732+0800 imported 1 document
データベース検証へのアクセス
[root@mongodb ~]# mongo
> use school
switched to db school
> show tables
info
info2
> db.info2.find()
{
"_id" : ObjectId("5f56eafbbb50f14e91ed31e0"), "id" : 1, "name" : "tom", "score" : 90, "hobby" : [ "game", "music", "sport" ] }
条件ベースのエクスポート:(info表裏id=10のレコードをエクスポート)
[root@mongodb ~]# mongoexport -d school -c info -q '{"id":{"$eq":10}}' -o /opt/top10.json
2020-09-08T12:12:26.122+0800 connected to: localhost
2020-09-08T12:12:26.123+0800 exported 1 record
クエリー条件オペレータ:(=)=======================================================================================
エクスポート・ファイルを表示するには、次の手順に従います.
[root@mongodb ~]# vim /opt/top10.json
{
"_id":{
"$oid":"5f570266a1451cb5e42060cc"},"id":10.0,"name":"jack10"}
六、バックアップ・リカバリ
バックアップコマンドmongodumpリカバリコマンドmongorestore
shellコマンドラインで操作する必要があります
[root@mongodb ~]# mkdir /bak //
[root@mongodb ~]# mongodump -d school -o /bak // /bak
2020-09-08T12:15:12.357+0800 writing school.info to
2020-09-08T12:15:12.357+0800 writing school.info2 to
2020-09-08T12:15:12.359+0800 done dumping school.info2 (1 document)
2020-09-08T12:15:12.359+0800 done dumping school.info (100 documents)
[root@mongodb ~]# ls /bak/
school
[root@mongodb ~]# cd /bak/school
[root@mongodb school]# ls
info2.bson info2.metadata.json info.bson info.metadata.json
バックアップ・ディレクトリからデータベースをリカバリします.データベースが存在しない場合は自動的に作成されます.
[root@mongodb school]# mongorestore -d school2 --dir=/bak/school
2020-09-08T12:17:39.469+0800 the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2020-09-08T12:17:39.470+0800 building a list of collections to restore from /bak/school dir
2020-09-08T12:17:39.470+0800 reading metadata for school2.info2 from /bak/school/info2.metadata.json
2020-09-08T12:17:39.471+0800 reading metadata for school2.info from /bak/school/info.metadata.json
2020-09-08T12:17:39.477+0800 restoring school2.info2 from /bak/school/info2.bson
2020-09-08T12:17:39.483+0800 restoring school2.info from /bak/school/info.bson
2020-09-08T12:17:39.484+0800 no indexes to restore
2020-09-08T12:17:39.484+0800 finished restoring school2.info2 (1 document)
2020-09-08T12:17:39.487+0800 no indexes to restore
2020-09-08T12:17:39.487+0800 finished restoring school2.info (100 documents)
2020-09-08T12:17:39.487+0800 done
[root@mongodb school]#
// , , ,
データベース検証へのアクセス
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
school 0.000GB
school2 0.000GB
> use school2
switched to db school2
> show tables
info
info2
七、クローン
1、クローンデータベース
> db.copyDatabase("school","share") // , share
WARNING: db.copyDatabase is deprecated. See http://dochub.mongodb.org/core/copydb-clone-deprecation
{
"note" : "Support for the copydb command has been deprecated. See http://dochub.mongodb.org/core/copydb-clone-deprecation",
"ok" : 1
}
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
school 0.000GB
school2 0.000GB
share 0.000GB
db.copyDatabaseは4.0以降は廃止されましたが、依然として成功しています.
2、クローン集合(表)
複数インスタンスを作成して複数インスタンスのデータディレクトリを作成するには
[root@mongodb school]# cd /data/mongodb/
[root@mongodb mongodb]# touch mongod{
3,4}.log
[root@mongodb mongodb]# chmod 777 mongod*.log
[root@mongodb mongodb]# mkdir mongo{
2,3,4}
コンフィギュレーションファイルの変更(省略、前述)起動インスタンス3とインスタンス4
[root@mongodb etc]# mongod -f /etc/mongod3.conf
about to fork child process, waiting until server is ready for connections.
forked process: 81392
child process started successfully, parent exiting
[root@mongodb etc]# mongod -f /etc/mongod4.conf
about to fork child process, waiting until server is ready for connections.
forked process: 81422
child process started successfully, parent exiting
リスニングポートを表示すると、mongodbインスタンスが4つ起動していることがわかります.
[root@mongodb etc]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 20265/mongod
tcp 0 0 0.0.0.0:27018 0.0.0.0:* LISTEN 20510/mongod
tcp 0 0 0.0.0.0:27019 0.0.0.0:* LISTEN 81392/mongod
tcp 0 0 0.0.0.0:27020 0.0.0.0:* LISTEN 81422/mongod
クローンテーブルはインスタンスに入り、データベースに入り、クローンの操作db.runCommandを実行する必要があります.
[root@mongodb ~]# mongo --port 27018
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
> db.runCommand({
"cloneCollection":"school.info","from":"192.168.245.207:27017"})
{
"ok" : 1 }
>
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
school 0.000GB
> use school
switched to db school
> show tables
info
> db.info.find()
{
"_id" : ObjectId("5f56eafbbb50f14e91ed31e0"), "id" : 1, "name" : "tom", "score" : 90, "hobby" : [ "game", "music", "sport" ] }
{
"_id" : ObjectId("5f570266a1451cb5e42060c4"), "id" : 2, "name" : "jack2" }
{
"_id" : ObjectId("5f570266a1451cb5e42060c5"), "id" : 3, "name" : "jack3" }
{
"_id" : ObjectId("5f570266a1451cb5e42060c6"), "id" : 4, "name" : "jack4" }
{
"_id" : ObjectId("5f570266a1451cb5e42060c7"), "id" : 5, "name" : "jack5" }
{
"_id" : ObjectId("5f570266a1451cb5e42060c8"), "id" : 6, "name" : "jack6" }
{
"_id" : ObjectId("5f570266a1451cb5e42060c9"), "id" : 7, "name" : "jack7" }
{
"_id" : ObjectId("5f570266a1451cb5e42060ca"), "id" : 8, "name" : "jack8" }
{
"_id" : ObjectId("5f570266a1451cb5e42060cb"), "id" : 9, "name" : "jack9" }
{
"_id" : ObjectId("5f570266a1451cb5e42060cc"), "id" : 10, "name" : "jack10" }
{
"_id" : ObjectId("5f570266a1451cb5e42060cd"), "id" : 11, "name" : "jack11" }
{
"_id" : ObjectId("5f570266a1451cb5e42060ce"), "id" : 12, "name" : "jack12" }
{
"_id" : ObjectId("5f570266a1451cb5e42060cf"), "id" : 13, "name" : "jack13" }
{
"_id" : ObjectId("5f570266a1451cb5e42060d0"), "id" : 14, "name" : "jack14" }
{
"_id" : ObjectId("5f570266a1451cb5e42060d1"), "id" : 15, "name" : "jack15" }
{
"_id" : ObjectId("5f570266a1451cb5e42060d2"), "id" : 16, "name" : "jack16" }
{
"_id" : ObjectId("5f570266a1451cb5e42060d3"), "id" : 17, "name" : "jack17" }
{
"_id" : ObjectId("5f570266a1451cb5e42060d4"), "id" : 18, "name" : "jack18" }
{
"_id" : ObjectId("5f570266a1451cb5e42060d5"), "id" : 19, "name" : "jack19" }
{
"_id" : ObjectId("5f570266a1451cb5e42060d6"), "id" : 20, "name" : "jack20" }
Type "it" for more
>