对于mongoDB中的每个用户,我都有这样的东西:
{
"id" : 1234,
"name" : "Mr. Someone",
"userdata" : {
"living" : {
"city" : "Somecity",
"address" : "Main Street 10.",
"zip" : "1023"
},
"interest" : "Cars"
}
我试图找到一种方法来计算Somecity中有多少订阅者。
我最好的猜测如下:
db.users.count({userdata:{living:{city:"Somecity"}}}
但结果是0。
我如何正确计算"行"通过mongoDB中的给定值?
我使用的是mongoDB的文档(例如:http://docs.mongodb.org/manual/reference/sql-comparison/),但还无法解决我的问题。
我正在使用mongoDB trough shell。
答案 0 :(得分:0)
我想我找到了解决问题的方法:
db.users.count({"userdata.living.city":"Somecity"})
这是" dotting"方法允许我只搜索数组中的一个值,而我尝试的方法首先想要找到完全匹配。
进一步阅读:http://docs.mongodb.org/manual/reference/operator/query/elemMatch/
引用:
由于$ elemMatch仅指定单个条件,因此$ elemMatch 表达式不是必需的,而是可以使用以下内容 查询:
db.survey.find({" results.product":" xyz"})