db.test.find();
{
_id: ObjectId('55e99a2190df7a911d6ed1f1'),
list: [
{
"aa": 10,
"data": "test"
},
{
"aa": 1,
"data": "test"
}
]
}
db.test.find({_id: ObjectId('55e99a2190df7a911d6ed1f1'), list: {'$elemMatch': {'aa': 1}}})
预期结果:
{_id: ObjectId('55e99a2190df7a911d6ed1f1'),
list: {
"aa": 1,
"data": "test"
}
リーリー
埋め込みドキュメントに一致するクエリを実行します。次のように直接クエリを実行することもできます:
リーリー上記のクエリ実装に対応します:
リーリーdb.test.find({_id: ObjectId('55e99a2190df7a911d6ed1f1'), list: {'$elemMatch': {'aa': 1}}},{"list.$":1}).pretty()
まず第一に、mongodb を使用する場合は、mongodb が nosql であることを理解する必要があります
次に、mongo コレクションにはドキュメントが保存されます
最後に、find によって返される値はドキュメントのコレクション、つまり配列である必要があることを知っておく必要があります
つまり、あなたが言ったことは基本的には達成不可能です
検索に必要なクエリ条件を入力するだけです。詳しくはmongodb公式サイトをご確認ください
$ 演算子を使用して 1 つ以上を返すことはできません