配列内のマルチキーインデックスを使用してMongoDBクエリを改善するにはどうすればよいですか?
これには、ネストされたオブジェクトのクエリに使用される$elemMatchを使用します。ドキュメントを使用してコレクションを作成しましょう-
> db.demo444.insertOne( ... { ... "Information": [{ ... id:1, ... Name:"Chris" ... }] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e78ea87bbc41e36cc3caebf") } > db.demo444.insertOne( ... { ... "Information": [{ ... id:2, ... Name:"David" ... }] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e78ea87bbc41e36cc3caec0") } > db.demo444.insertOne( ... { ... "Information": [{ ... id:3, ... Name:"Bob" ... }] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e78ea88bbc41e36cc3caec1") }
find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo444.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e78ea87bbc41e36cc3caebf"), "Information" : [ { "id" : 1, "Name" : "Chris" } ] } { "_id" : ObjectId("5e78ea87bbc41e36cc3caec0"), "Information" : [ { "id" : 2, "Name" : "David" } ] } { "_id" : ObjectId("5e78ea88bbc41e36cc3caec1"), "Information" : [ { "id" : 3, "Name" : "Bob" } ] }
以下は、配列内のマルチキーインデックスを使用してクエリを改善するためのクエリです-
> db.demo444.find({ ... "Information":{ ... $elemMatch:{ ... id:2, ... Name:"David" ... } ... } ... })
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e78ea87bbc41e36cc3caec0"), "Information" : [ { "id" : 2, "Name" : "David" } ] }
-
MongoDBで配列内のアイテムをカウントする方法は?
配列内のアイテムをカウントするには、lengthを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo440.insertOne( ... { ... "Name":"Chris", ... "ListOfFriends":["John","Sam","Mike"] ... } ... ); { &nbs
-
MongoDBの配列フィールドを操作してすべてに一致させるにはどうすればよいですか?
MongoDBのすべてに一致させるには、$allを使用します。 $ all演算子は、フィールドの値が指定されたすべての要素を含む配列であるドキュメントを選択します。ドキュメントを使用してコレクションを作成しましょう- > db.demo695.insertOne({"ListOfValues":[100,200,500,800]}); { "acknowledged" : true, "insertedId" : ObjectId("5ea6d4c4551299a9f