mongoDB でこのクエリを作成するにはどうすればよいですか?
{
_id: "********"
コンテンツ: ""、
コメント: [
{
key1: "1",
key2: "2"
}、
{
key1: "sdfs",
key2: "sdfasdf"
}
]
}
たとえば、以下のようなデータを使用します。条件 {key1: 1, key2: 2} のコメント内のアイテムをクエリし、レコード全体を返したくない。
私は何をすべきか?
mongoDB でこのクエリを作成するにはどうすればよいですか?
{
_id: "********"
コンテンツ: ""、
コメント: [
{
key1: "1",
key2: "2"
}、
{
key1: "sdfs",
key2: "sdfasdf"
}
]
}
たとえば、以下のようなデータを使用します。条件 {key1: 1, key2: 2} のコメント内のアイテムをクエリし、レコード全体を返したくない。
私は何をすべきか?
あなたはこれを試すことができます
{ "comments.key1" : "1", "comments.key2" : "sdfasdf" }
これを使用する必要があるのは、配列要素で複数のフィールドを一致させる必要がある場合のみです。
次を使用して、2 つのフィールドでサブドキュメントをクエリできます$elemMatch
。
{ comments: { $elemMatch : { key1: 1, key2: 2 } } }
選択したサブ文書だけを返すことはできません。あなたはそれらすべてを手に入れるでしょう。そのため、クライアント側でフィルタリングする必要があります。(もちろん、メイン ドキュメントの他のすべてのフィールドを除外することもできます)。