我可以帮助您进行翻译。以下是您需要翻译的内容:
这个查询完全正常,但我的问题是,当我可以像这样查询时,为什么需要使用此查询:
我相信使用$elemMatch一定有其原因,只是想找出其中的区别。提前感谢回复!!!
我有一个名为“name”的集合,其中包含两个文档,结构如下:
文档1:
{
a: 1
b : [{name:"AAA",age:10},
{name:"BBB",age:12},
{name:"CCC",age:13}]
}
文档2:
{
a: 2
b : [{name:"DDD",age:14},
{name:"EEE",age:15},
{name:"FFF",age:16}]
}
由于我对MongoDB还不熟悉,我正在尝试找出使用$elemMatch运算符和不使用它的区别。基本上,我正在查询并查找名为AAA且年龄为10岁的第一个文档(文档1)。因此,使用$elemMatch,我的查询如下:
db.name.find({b: {$elemMatch :{name:"AAA",age:10}}})
这个查询完全正常,但我的问题是,当我可以像这样查询时,为什么需要使用此查询:
db.name.find({b:{name:"AAA",age:10}})
我相信使用$elemMatch一定有其原因,只是想找出其中的区别。提前感谢回复!!!
db.name.find({b:{name:"AAA",age:10}})
,但不是db.name.find({"b.name":"AAA","b.age":10})
。因此,在 OP 的用例中,第二个查询在理论上是 $elemMatch。 - s7vr