数组的所有对象"/>
无法计数存储在mongo db中的json数组的所有对象
我已经在mongodb中存储了一个包含Json对象数组的文档。看起来像:
{"_id":ObjectId("5ec3a08140a8e1365cbf7e6f")
"boats":[ //json array of boat objects
{
"_id" : ObjectId("5ec3a08140a8e1365cbf7e73"),
"model": "benet",
"year" : "01/01/2019",
price : 200
},
{...},
{...},
{...} // other objects
]
}
我是mongodb的新手,我正在尝试计算价格为200的阵列船中的对象。我尝试如下操作:
db.getCollection('boatsCompany').find({'price' : 200}).count()
问题是它只计数并返回1,并且数组中的'price': 200
可能有更多对象。
如果您想在所有文档中搜索价格不超过200的船只,请使用以下查询,
db.getCollection('boatsCompany').aggregate([
{
$project: {
prices: {
$filter: {
input: "$boats",
as: "boat",
cond: { $eq: [ "$$boat.price", 200 ] }
}
}
}
},
{
$project: {
numberOfBoats: { $size: "$prices" }
}
}
])
并且如果您想要一个公司,则应先将$ match与公司ID一起放入,然后搜索船只
db.getCollection('boatsCompany').aggregate([
{ $match : { "_id" : ObjectId("5ec3a08140a8e1365cbf7e6f") } },
{
$project: {
prices: {
$filter: {
input: "$boats",
as: "boat",
cond: { $eq: [ "$$boat.price", 200 ] }
}
}
}
},
{
$project: {
numberOfBoats: { $size: "$prices" }
}
}
])
更多推荐
无法计数存储在mongo db中的json数组的所有对象
发布评论