【发布时间】:2019-03-15 09:32:00
【问题描述】:
这是单个文档:
{
_id: "...",
firstName: "john",
lastName:"Doe",
cars: [
{
"_id": "...",
"carName": "BMW",
"carModel": "330",
"carColor": "silver"
},
{
"_id": "...",
"carName": "Lexus",
"carModel": "IS300",
"carColor": "white"
},
{
"_id": "...",
"carName": "LADA",
"carModel": "2106",
"carColor": "blue"
}
]
}
我正在尝试仅选择 John's BMW 的“carColor”。 像这样的:
db.persons.findOne(
{ "firstName": "John", "cars.carName": "BMW" },
{ "_id": 0, "cars.$.carColor": 1 }
);
但是这个查询返回完整的对象是这样的:
{
cars: [
{
"_id": "...",
"carName": "BMW",
"carModel": "330",
"carColor": "silver"
}
}
我已经尝试了不同的查询,但没有 .$。符号:
db.persons.findOne(
{ "firstName": "John", "cars.carName": "BMW" },
{ "_id": 0, "cars.carColor": 1 }
);
此版本仅返回“carColor”属性,但不过滤“carName”。 像这样:
{
cars: [
{
"carColor": "silver"
},
{
"carColor": "white"
},
{
"carColor": "blue"
}
]
}
有什么想法吗?
【问题讨论】:
标签: arrays database mongodb mongoose mongodb-query