对于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槽壳。
发布于 2015-07-07 11:11:33
我想我已经找到了我的问题的解决方案:
db.users.count({"userdata.living.city":"Somecity"})
这个“点”方法允许我在数组中只搜索一个值,而我首先尝试的方法想要找到一个精确的匹配项。
进一步阅读:http://docs.mongodb.org/manual/reference/operator/query/elemMatch/
引用:
由于$elemMatch仅指定单个条件,因此$elemMatch表达式不是必需的,您可以使用以下查询:
https://stackoverflow.com/questions/31264239
复制相似问题