MongoDBの配列に対してANDクエリをどのように実行しますか?
MongoDBでANDのような同じ結果を得るには、$all演算子を使用します。まず、ドキュメントを使用してコレクションを作成しましょう-
> db.andQueryDemo.insertOne({"StudentName":"Carol Taylor","FavouriteSubject":["C","Java","MongoDB","MySQL"]}); { "acknowledged" : true, "insertedId" : ObjectId("5cc73e7a8f9e6ff3eb0ce433") } > db.andQueryDemo.insertOne({"StudentName":"David Miller","FavouriteSubject":["C++","Java","MongoDB","SQL Server"]}); { "acknowledged" : true, "insertedId" : ObjectId("5cc73ea48f9e6ff3eb0ce434") } > db.andQueryDemo.insertOne({"StudentName":"Carol Taylor","FavouriteSubject":["Python","PL/SQL"]}); { "acknowledged" : true, "insertedId" : ObjectId("5cc73ed38f9e6ff3eb0ce435") }
以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-
> db.andQueryDemo.find().pretty();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5cc73e7a8f9e6ff3eb0ce433"), "StudentName" : "Carol Taylor", "FavouriteSubject" : [ "C", "Java", "MongoDB", "MySQL" ] } { "_id" : ObjectId("5cc73ea48f9e6ff3eb0ce434"), "StudentName" : "David Miller", "FavouriteSubject" : [ "C++", "Java", "MongoDB", "SQL Server" ] } { "_id" : ObjectId("5cc73ed38f9e6ff3eb0ce435"), "StudentName" : "Carol Taylor", "FavouriteSubject" : [ "Python", "PL/SQL" ] }
以下は、$allを使用してMongoDBの配列に対してANDクエリを実行するためのクエリです。ここでは、「Java」と「MongoDB」の両方を含む配列をFavouriteSubject-
として表示しています。> db.andQueryDemo.find({FavouriteSubject:{$all:["Java","MongoDB"]}}).pretty();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5cc73e7a8f9e6ff3eb0ce433"), "StudentName" : "Carol Taylor", "FavouriteSubject" : [ "C", "Java", "MongoDB", "MySQL" ] } { "_id" : ObjectId("5cc73ea48f9e6ff3eb0ce434"), "StudentName" : "David Miller", "FavouriteSubject" : [ "C++", "Java", "MongoDB", "SQL Server" ] }
-
MongoDBのサブドキュメントの配列をクエリする
サブドキュメントの配列をクエリするには、MongoDBで$unwindを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo499.insertOne({ ... "details": ... [ ... { ... Name :"MIT", ... Rank: 1, ...
-
MongoDBに埋め込まれたドキュメントの配列をクエリし、別のドキュメントをプッシュしますか?
このために、更新と一緒に$pushを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo573.insertOne( ... { ... '_id' :101, ... 'SearchInformation' : [ ... { ... 'Site'