6

次のようなコレクションを照会する方法を探しています。

[{ 
  name: "Parent 1",
  items: [
    { name: "Child 1", age: "60" },
    { name: "Child at heart", age: "27" }
  ]
 },

 {
  name: "Parent 2",
  items: [
    { name: "Child 3", age: "10" },
    { name: "Child 4", age: "15" },
    { name: "Child at heart", age: "60" }
  ]
 }
]

次のようなクエリを使用します。

db.collection.find( 'items.name' => "Child at heart", 'items.age' => "60" )

「Parent 2」という名前のオブジェクトだけの結果を取得します。つまり、同じ埋め込みドキュメント内に "Child at heart" という名前と" 60" という年齢の両方を持つ埋め込みアイテムを含むドキュメントを検索するクエリを実行したいと考えています。代わりに、このクエリは「親 1」と「親 2」の両方のドキュメントを返します。

同じ埋め込みドキュメント内の異なるフィールドで $and 条件を使用してクエリを実行するにはどうすればよいですか?

ありがとう。

4

1 に答える 1