相关疑难解决方法(0)

MongoDB嵌套数组查询

我已将此问作为对另一个问题的评论,并在mongodb-user上发布了一个问题.到目前为止没有回复,所以我要求另外提问.

文件规定:

如果该字段包含数组,则$ in运算符选择其字段包含一个数组的文档,该数组包含至少一个与指定数组中的值匹配的元素(例如,等等)

我正在使用:

mongod --version:
db version v2.2.2, pdfile version 4.5
Thu May 30 12:19:12 git version: d1b43b61a5308c4ad0679d34b262c5af9d664267

mongo --version:
MongoDB shell version: 2.0.4
Run Code Online (Sandbox Code Playgroud)

在MongoDB shell中:

db.nested.insert({'level1': {'level2': [['item00', 'item01'], ['item10', 'item11']]}})
Run Code Online (Sandbox Code Playgroud)

这是根据文档应该工作的查询列表,以及它们产生的结果:

为什么这不起作用?

> db.nested.findOne({'level1.level2.0': 'item00'})
null
Run Code Online (Sandbox Code Playgroud)

为什么我需要$ all?

> db.nested.findOne({'level1.level2.0': {'$all': ['item00']}})
{
    "_id" : ObjectId("51a7a4c0909dfd8872f52ed7"),
    "level1" : {
        "level2" : [
            [
                "item00",
                "item01"
            ],
            [
                "item10",
                "item11"
            ]
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

至少有下列之一应该可以工作,对吧?

> db.nested.findOne({'level1.level2.0': {'$in': ['item00']}})
null

> …
Run Code Online (Sandbox Code Playgroud)

mongodb nosql mongodb-query

40
推荐指数
3
解决办法
6万
查看次数

标签 统计

mongodb ×1

mongodb-query ×1

nosql ×1