算在mongoDB中

时间:2015-07-07 09:05:17

标签: mongodb-query

对于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。

1 个答案:

答案 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"})