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

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


一意のレコードのみを表示するには、MongoDBでdistinct()を使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo613.insertOne({"Name":"Chris"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e988bd4f6b89257f5584d88")
}
> db.demo613.insertOne({"Name":"Bob"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e988bdbf6b89257f5584d89")
}
> db.demo613.insertOne({"Name":"Bob"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e988bddf6b89257f5584d8a")
}
> db.demo613.insertOne({"Name":"David"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e988be0f6b89257f5584d8b")
}
> db.demo613.insertOne({"Name":"Chris"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e988be2f6b89257f5584d8c")
}
> db.demo613.insertOne({"Name":"Sam"});{
   "acknowledged" : true, "insertedId" : ObjectId("5e988be8f6b89257f5584d8d")
}

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

> db.demo613.find();

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

{ "_id" : ObjectId("5e988bd4f6b89257f5584d88"), "Name" : "Chris" }
{ "_id" : ObjectId("5e988bdbf6b89257f5584d89"), "Name" : "Bob" }
{ "_id" : ObjectId("5e988bddf6b89257f5584d8a"), "Name" : "Bob" }
{ "_id" : ObjectId("5e988be0f6b89257f5584d8b"), "Name" : "David" }
{ "_id" : ObjectId("5e988be2f6b89257f5584d8c"), "Name" : "Chris" }
{ "_id" : ObjectId("5e988be8f6b89257f5584d8d"), "Name" : "Sam" }

以下は、一意のレコードを取得するためのクエリです-

> db.demo613.distinct("Name");

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

[ "Chris", "Bob", "David", "Sam" ]

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

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

  2. ネストされたMongoDBドキュメントのキーのみを表示するにはどうすればよいですか?

    ドキュメントを使用してコレクションを作成しましょう- > db.demo740.insertOne({ ...    "details": ...    [ ...       { ...          Name:"Chris", ...          Age:21, ...          CountryName:&qu