配列にMongoDBの特定のフィールドのみが含まれているオブジェクトを選択するにはどうすればよいですか?
まず、ドキュメントを使用してコレクションを作成しましょう-
> db.arrayContainOnlySpecificFieldDemo.insertOne(
... {
... "StudentName":"John",
... "StudentAge":21,
... "StudentTechnicalSubject":["C","Java","MongoDB"]
... }
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5cc4921dac184d684e3fa26a")
}
> db.arrayContainOnlySpecificFieldDemo.insertOne( { "StudentName":"Carol",
"StudentAge":23, "StudentTechnicalSubject":["MongoDB"] } );
{
"acknowledged" : true,
"insertedId" : ObjectId("5cc49237ac184d684e3fa26b")
} find()メソッドを使用して、コレクションのすべてのドキュメントを表示します。クエリは次のとおりです-
> db.arrayContainOnlySpecificFieldDemo.find().pretty();
これにより、次の出力が生成されます-
{
"_id" : ObjectId("5cc4921dac184d684e3fa26a"),
"StudentName" : "John",
"StudentAge" : 21,
"StudentTechnicalSubject" : [
"C",
"Java",
"MongoDB"
]
}
{
"_id" : ObjectId("5cc49237ac184d684e3fa26b"),
"StudentName" : "Carol",
"StudentAge" : 23,
"StudentTechnicalSubject" : [
"MongoDB"
]
} 以下は、配列に特定のフィールドのみが含まれているオブジェクトを選択するためのクエリです-
> db.arrayContainOnlySpecificFieldDemo.find({"StudentTechnicalSubject":[
"MongoDB"]}).pretty(); これにより、次の出力が生成されます-
{
"_id" : ObjectId("5cc49237ac184d684e3fa26b"),
"StudentName" : "Carol",
"StudentAge" : 23,
"StudentTechnicalSubject" : [
"MongoDB"
]
} -
特定のフィールドで構成されていないMongoDBドキュメントを選択するにはどうすればよいですか?
MongoDB$existsを使用して特定のフィールドを確認します。そのフィールドがドキュメントに存在しない場合は、find()を使用して同じドキュメントを表示する必要があります。 ドキュメントを使用してコレクションを作成しましょう- > db.demo612.insertOne({id:1,"Info":[{Name:"Chris",Age:21},{Name:"David"}]});{ "acknowledged" : true, "insertedId"
-
MongoDBの$projectを使用して配列内の特定のフィールドを表示し、他のフィールドを無視するにはどうすればよいですか?
特定のフィールドを表示するには、$projectを$unwindと一緒に使用します。フィールドを無視するには、0に設定します。ドキュメントを使用してコレクションを作成しましょう- > db.demo731.insertOne({ "ProductInformation": [ { ProductId:"Product-1", ProductPrice:80 }, { ProductId:"Product-2", ProductPrice:45 }, { ProductId:"Product-3", Produ