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

MongoDBコレクションからすべてのネストされたフィールドを取得するにはどうすればよいですか?


これには、aggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう-

>db.demo138.insertOne({"Id":101,"PlayerDetails":[{"PlayerName":"Chris","PlayerScore":400},{"PlayerName":"David","PlayerScore":1000}]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e31bb9ffdf09dd6d08539a1")
}
>db.demo138.insertOne({"Id":102,"PlayerDetails":[{"PlayerName":"Bob","PlayerScore":500},{"PlayerName":"Carol","PlayerScore":600}]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e31bbcefdf09dd6d08539a2")
}
>

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

> db.demo138.find();

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

{
   "_id" : ObjectId("5e31bb9ffdf09dd6d08539a1"), "Id" : 101, "PlayerDetails" : [
      { "PlayerName" : "Chris", "PlayerScore" : 400 },
      { "PlayerName" : "David", "PlayerScore" : 1000 }
   ]
}
{
   "_id" : ObjectId("5e31bbcefdf09dd6d08539a2"), "Id" : 102, "PlayerDetails" : [
      { "PlayerName" : "Bob", "PlayerScore" : 500 }, { "PlayerName" : "Carol", "PlayerScore" : 600 }
   ] 
}

以下は、コレクションからすべてのネストされたフィールドを取得するためのクエリです-

> db.demo138.aggregate([{ $unwind:"$PlayerDetails" }, { $project: { "PlayerName":"$PlayerDetails.PlayerName", "PlayerScore":"$PlayerDetails.PlayerScore" } } ] );

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

{ "_id" : ObjectId("5e31bb9ffdf09dd6d08539a1"), "PlayerName" : "Chris", "PlayerScore" : 400 }
{ "_id" : ObjectId("5e31bb9ffdf09dd6d08539a1"), "PlayerName" : "David", "PlayerScore" : 1000 }
{ "_id" : ObjectId("5e31bbcefdf09dd6d08539a2"), "PlayerName" : "Bob", "PlayerScore" : 500 }
{ "_id" : ObjectId("5e31bbcefdf09dd6d08539a2"), "PlayerName" : "Carol", "PlayerScore" : 600 }

  1. MongoDBコレクションから重複を削除するにはどうすればよいですか?

    このために、「 unique:true」を設定します 」つまり、一意の制約を使用し、次の構文のように重複を挿入しないようにします- db.yourCollectionName.ensureIndex({yourFieldName: 1}, {unique: true, dropDups: true}) 上記の構文を理解するために、ドキュメントを使用してコレクションを作成しましょう。ここでは、重複挿入は許可されません- > db.demo604.ensureIndex({FirstName: 1}, {unique: true, dropDups: true});{   &nb

  2. Javaを使用してMongoDBコレクションからすべてのドキュメントを取得するにはどうすればよいですか?

    find()を使用して、MongoDBの既存のコレクションからドキュメントを取得できます メソッド。 構文 db.coll.find() どこで、 db はデータベースです。 coll ドキュメントを挿入するコレクション(名前)です 例 次のドキュメントを含むstudentsという名前のコレクションがMongoDBデータベースにあると仮定します- {name:"Ram", age:26, city:"Mumbai"} {name:"Roja", age:28, city:"Hyderaba