MongoDBオブジェクト配列内の異なるオブジェクトの属性を比較する方法は?
属性を比較するには、$letを$indexOfArrayと一緒に使用します。まず、ドキュメントを使用してコレクションを作成しましょう-
> db.demo366.insertOne( ... { ... ... "Name" : "Chris", ... "details" : [ ... { ... "Id" : "John1", ... "value" : "test" ... }, ... { ... "Id" : "John2", ... "value" : 18 ... }, ... { ... "Id" : "John3", ... "value" : 20 ... } ... ]} ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e57ddd92ae06a1609a00ae7") }
find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo366.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e57ddd92ae06a1609a00ae7"), "Name" : "Chris", "details" : [ { "Id" : "John1", "value" : "test" }, { "Id" : "John2", "value" : 18 }, { "Id" : "John3", "value" : 20 } ] }
以下は、MongoDBオブジェクト配列内のさまざまなオブジェクトの属性を比較するためのクエリです-
> db.demo366.find( ... {"$expr":{ ... "$let":{ ... "vars":{ ... "john2":{"$arrayElemAt":["$details",{"$indexOfArray":["$details.Id","John2"]}]}, ... "john3":{"$arrayElemAt":["$details",{"$indexOfArray":["$details.Id","John3"]}]} ... }, ... "in":{"$lt":["$$john2.value","$$john3.value"]}} ... }})
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e57ddd92ae06a1609a00ae7"), "Name" : "Chris", "details" : [ { "Id" : "John1", "value" : "test" }, { "Id" : "John2", "value" : 18 }, { "Id" : "John3", "value" : 20 } ] }
-
MongoDBのオブジェクト内にある配列にアイテムを挿入するにはどうすればよいですか?
オブジェクト内にすでに作成されている配列にアイテムを挿入するには、MongoDB$pushを使用します。ドキュメントを使用してコレクションを作成しましょう- db.demo449.insertOne(... {... details1:{... details2:[{... _id:new ObjectId()、... Name: Chris ...}] 、... details3:[{... _id:new ObjectId()、... Name: David ...}] ...} ...} ...); {acknowledged:true 、insertedId:ObjectId( 5e
-
MongoDBのオブジェクト配列からアイテムを取得するにはどうすればよいですか?
オブジェクト配列からアイテムを取得するには、aggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo459.insertOne( ... { "_id" : 1, ... "Information" : [ ... { ... "Name" : "Chris", ... "_id" : new ObjectId(), ... &n