2レベルの深さのMongoDBレコードをどのように見つけますか?
2レベルの深さのMongoDBレコードを見つけるには、MongoDB$where内でループします。ドキュメントを使用してコレクションを作成しましょう-
> db.demo468.insertOne( ... { ... "_id" : new ObjectId(), ... "FirstPosition" : { ... "StudentName" : "Chris", ... "StudentAge" : 23 ... }, ... "SecondPosition" : { ... "StudentName" : "David", ... "StudentAge" : 20 ... } ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e804e2fb0f3fa88e2279069") } > db.demo468.insertOne( ... { ... "_id" : new ObjectId(), ... "FirstPosition" : { ... "StudentName" : "Carol", ... "StudentAge" : 21 ... }, ... "SecondPosition" : { ... "StudentName" : "John", ... "StudentAge" : 22 ... } ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e804fb0b0f3fa88e227906a") }
find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo468.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e804e2fb0f3fa88e2279069"), "FirstPosition" : { "StudentName" : "Chris", "StudentAge" : 23 }, "SecondPosition" : { "StudentName" : "David", "StudentAge" : 20 } } { "_id" : ObjectId("5e804fb0b0f3fa88e227906a"), "FirstPosition" : { "StudentName" : "Carol", "StudentAge" : 21 }, "SecondPosition" : { "StudentName" : "John", "StudentAge" : 22 } }
以下は、2レベルの深さのMongoDBレコードを見つけるためのクエリです-
> db.demo468.find({ ... $where: function() { ... for (var i in this) { ... if (this[i]["StudentName"] == "John") { ... return true; ... } ... } ... return false; ... } ... })
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e804fb0b0f3fa88e227906a"), "FirstPosition" : { "StudentName" : "Carol", "StudentAge" : 21 }, "SecondPosition" : { "StudentName" : "John", "StudentAge" : 22 } }
-
要素がドキュメントに存在するかどうかを確認する方法-MongoDB?
MongoDBドキュメントに要素が存在するかどうかを確認するには、MongoDB$existsを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo497.insertOne({"details":[{"Name":"Chris"},{"Name":"Bob"}]});{ "acknowledged" : true, "insertedId" : ObjectId(&
-
MongoDBのサブドキュメントで検索クエリを実行するにはどうすればよいですか?
サブドキュメントの場合は、ドット表記を使用します。まず、ドキュメントを使用してコレクションを作成しましょう- > db.demo537.insertOne({"details":{"SubjectName":"MongoDB"}});{ "acknowledged" : true, "insertedId" : ObjectId("5e8c8a10ef4dcbee04fbbc05") } > db.demo537