MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

ネストされた配列が入力されたMongoDBドキュメントを検索し、ドキュメントの結果を再形成します


まず、ドキュメントを使用してコレクションを作成しましょう-

> db.demo187.insertOne(
...    {
...      "_id" : "101",
...      "Details" : [
...         { "Subject" : "MongoDB" },
...         { "Subject" : "MySQL" }
...      ]
...   }
...);
{ "acknowledged" : true, "insertedId" : "101" }
> db.demo187.insertOne(
...   {
...      "_id" : "102",
...      "Details" : [
...         { }
...      ]
...   }
...);
{ "acknowledged" : true, "insertedId" : "102" }
> db.demo187.insertOne(
...   {
...      "_id" : "103",
...      "Details" : [
...         { "Subject" : "MongoDB" },
...         { "Subject" : "MySQL" }
...      ]
...   }
...);
{ "acknowledged" : true, "insertedId" : "103" }

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo187.find();

これにより、次の出力が生成されます-

{ "_id" : "101", "Details" : [ { "Subject" : "MongoDB" }, { "Subject" : "MySQL" } ] }
{ "_id" : "102", "Details" : [ {  } ] }
{ "_id" : "103", "Details" : [ { "Subject" : "MongoDB" }, { "Subject" : "MySQL" } ] }

以下は、ネストされた配列が埋められたMongoDBドキュメントで検索するクエリです-

> db.demo187.aggregate([
...
...   {$unwind: '$Details'},
...
...   {$project: {Subject: '$Details.Subject'}},
...
...   {$match: {Subject: {$exists: true}}}
... ])

これにより、次の出力が生成されます-

{ "_id" : "101", "Subject" : "MongoDB" }
{ "_id" : "101", "Subject" : "MySQL" }
{ "_id" : "103", "Subject" : "MongoDB" }
{ "_id" : "103", "Subject" : "MySQL" }

  1. 特定のFirstNameとLastNameを持つドキュメントを検索するためのMongoDBクエリ

    特定のFirstNameとLastNameを持つドキュメントを検索するには、$andを$inとともに使用します。これをMongoDBfind()に実装します。ドキュメントを使用してコレクションを作成しましょう- > db.demo692.insertOne({FirstName:"Chris","LastName":"Brown"}); {    "acknowledged" : true,    "insertedId" : ObjectId(&q

  2. MongoDBを使用して、特定のネストされたドキュメントのオブジェクトの配列をクエリしますか?

    ネストされたドキュメントのオブジェクトの配列をクエリするには、find()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo763.insertOne( ...    { ...       _id:1, ...       CountryName:"US", ...       "studentInformation": [ ...          {