0
あなたはMongoDBの中で私のユーザーコレクションの次のドキュメントがあるとします。MongoDBのコレクションに(他のすべてを含まなければならない)共通の属性に加えて、ネストされた配列要素から(基準に基づいて)特定の値を取得
{
_id: 1,
zipcode: "63109",
students: [
{ name: "john", school: 102, age: 10 },
{ name: "jess", school: 102, age: 11 },
{ name: "jeff", school: 108, age: 15 }
]
}
{
_id: 2,
zipcode: "63110",
students: [
{ name: "ajax", school: 100, age: 7 },
{ name: "achilles", school: 100, age: 8 },
]
}
{
_id: 3,
zipcode: "63109",
students: [
{ name: "ajax", school: 100, age: 7 },
{ name: "achilles", school: 100, age: 8 },
]
}
{
_id: 4,
zipcode: "63109",
students: [
{ name: "barney", school: 102, age: 7 },
{ name: "ruth", school: 102, age: 16 },
]
}
ドゥクエリ:
db.user.find({ "students.name": "barney" }, { students: { $elemMatch: { name: "barney" } } })
は以下を返します:
{
"_id" : "2",
"students" : [
{
"name" : "ajax",
"school" : "100",
"age": "7"
}
]
},
{
"_id" : "3",
"students" : [
{
"name" : "ajax",
"school" : "100",
"age": "7"
}
]
}
しかし、私はトンを必要としますoネストされた配列要素(「学生」)を名前(「ajax」)に基づいてフィルタリングし、各ドキュメントに存在する他のすべての属性も含めます。
例えば、私はあまりにも、以下に示すように、「郵便番号」などの共通の属性含めるように私の結果を期待しています:
{
"_id" : "2",
"zipcode": "63110",
"students" : [
{
"name" : "ajax",
"school" : "100",
"age": "7"
}
]
},
{
"zipcode": "63109",
"_id" : "3",
"students" : [
{
"name" : "ajax",
"school" : "100",
"age": "7"
}
]
}
私はこれをどのように行うことができますか?
それは働いた。ありがとう:) – saikumarb23