mongodb查询结果

时间:2016-02-08 07:30:18

标签: mongodb mongodb-query nosql

[
    {
        "userid": "abcde",
        "dates": {
            "2-01-2015": {
                "9-10": {
                    "ava": "yes",
                    "bookibg_id": "null"
                },
                "10-11": {
                    "ava": "yes",
                    "bookibg_id": "null"
                }
            },
            "3-01-2015": {
                "9-10": {
                    "ava": "no",
                    "bookibg_id": "null"
                },
                "10-11": {
                    "ava": "no",
                    "bookibg_id": "null"
                }
            }
        }
    },
    {
        "userid": "abcde",
        "dates": {
            "2-01-2015": {
                "9-10": {
                    "ava": "yes",
                    "bookibg_id": "null"
                },
                "10-11": {
                    "ava": "no",
                    "bookibg_id": "null"
                }
            },
            "3-01-2015": {
                "9-10": {
                    "ava": "no",
                    "bookibg_id": "null"
                },
                "10-11": {
                    "ava": "no",
                    "bookibg_id": "null"
                }
            }
        }
    }
]

我对nosql db和mongodb相对较新。它有点令人困惑如何查询这些。 对于给定的db,我如何编写查询以生成结果: 查询:列出用户ID,使得在“2-01-2015”,“ava”在“9-10”处为“是”。 Plzz还解释了结果。

1 个答案:

答案 0 :(得分:5)

你可以找到

db.coll.find({'dates.2-01-2015.9-10.ava': "yes"},{"userid":1,'_id':0})

此处为'dates.2-01-2015.9-10.ava':'yes'用于查找ava的值为yes,类似于从JSON对象访问值,第二个参数是用于仅从查询中获取用户ID {“userid”:1,'_ id':0}

输出将是

{ "userid" : "abcde" }
{ "userid" : "abcde" }

如果您删除第二个参数,您将根据第二个参数获得结果中的整个文档,您可以过滤所需的字段