Mongodb中的$elemMatch输出
我有一个包含一个元素的集合Mongodb中的$elemMatch输出,mongodb,mongodb-query,Mongodb,Mongodb Query,我有一个包含一个元素的集合 mongos> db.products.findOne(); { "_id" : 1, "product_code" : "345678", "variations" : [ { "size" : "L", "price" : 1000 },
mongos> db.products.findOne();
{
"_id" : 1,
"product_code" : "345678",
"variations" : [
{
"size" : "L",
"price" : 1000
},
{
"size" : "M",
"price" : 800
}
]
}
现在,当我在下面执行$elemMatch查询时
db.products.find( {product_code: "345678"}, { "variations": { $elemMatch: { size: "L" } } } );
我得到的输出如下
{ "_id" : 1, "variations" : [ { "size" : "L", "price" : 1000 } ] }
我的问题是为什么$elemMatch查询的输出中不显示值为345678的“product_code”字段?有什么想法吗??这是一个bug还是我做错了什么?这是因为在调用中提供参数时,需要指定所有需要的字段 因此,您需要向投影对象添加
product\u code
:
db.test.find({ product_code: "345678"},
{ product_code: 1,
variations: { $elemMatch: { size: "L" } } } )
这是因为当您在调用中提供参数时,您需要指定所需的所有字段 因此,您需要向投影对象添加
product\u code
:
db.test.find({ product_code: "345678"},
{ product_code: 1,
variations: { $elemMatch: { size: "L" } } } )
但是我在find调用中没有提供投影参数。。find({product_代码:“345678”},{“变体”:{$elemMatch:{size:“L”}})@用户641887你有;
find
调用中的第二个参数(带有$elemMatch变体的参数)是投影参数。但是我在find调用中没有提供投影参数。。find({product_代码:“345678”},{“变体”:{$elemMatch:{size:“L”}})@用户641887你有;find
调用中的第二个参数(带有$elemMatch变体的参数)是projection参数。