MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBの$projectを使用して配列内の特定のフィールドを表示し、他のフィールドを無視するにはどうすればよいですか?


特定のフィールドを表示するには、$projectを$unwindと一緒に使用します。フィールドを無視するには、0に設定します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo731.insertOne({ "ProductInformation": [ { ProductId:"Product-1", ProductPrice:80 }, { ProductId:"Product-2", ProductPrice:45 }, { ProductId:"Product-3", ProductPrice:50 } ] } );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eac5efd56e85a39df5f6341")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo731.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5eac5efd56e85a39df5f6341"), "ProductInformation" : [ { "ProductId" : "Product-1", "ProductPrice" : 80 }, { "ProductId" : "Product-2", "ProductPrice" : 45 }, { "ProductId" : "Product-3", "ProductPrice" : 50 } ] }

以下は、MongoDBの$projectを使用して配列内の特定のフィールドを表示するためのクエリです-

> db.demo731.aggregate([
...    { $unwind: "$ProductInformation" },
...    { $match: { "ProductInformation.ProductPrice": 80} },
...    { $project: {_id: 0,"ProductInformation.ProductPrice":0}}
... ])

これにより、次の出力が生成されます-

{ "ProductInformation" : { "ProductId" : "Product-1" } }

  1. MongoDBからの一意のレコードのみを表示し、重複を無視するにはどうすればよいですか?

    一意のレコードのみを表示するには、MongoDBでdistinct()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo613.insertOne({"Name":"Chris"});{    "acknowledged" : true, "insertedId" : ObjectId("5e988bd4f6b89257f5584d88") } > db.demo613.insertOne({"Name":&

  2. MongoDBの$projectを使用して配列内の特定のフィールドを表示し、他のフィールドを無視するにはどうすればよいですか?

    特定のフィールドを表示するには、$projectを$unwindと一緒に使用します。フィールドを無視するには、0に設定します。ドキュメントを使用してコレクションを作成しましょう- > db.demo731.insertOne({ "ProductInformation": [ { ProductId:"Product-1", ProductPrice:80 }, { ProductId:"Product-2", ProductPrice:45 }, { ProductId:"Product-3", Produ