mongodb java 嵌套查询_MongoDB嵌套数组查询

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

如果该字段包含数组,则$ 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

在MongoDB shell中:

db.nested.insert({'level1': {'level2': [['item00', 'item01'], ['item10', 'item11']]}})

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

为什么这不起作用?

> db.nested.findOne({'level1.level2.0': 'item00'})

null

为什么我需要$ all?

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

{

"_id" : ObjectId("51a7a4c0909dfd8872f52ed7"),

"level1" : {

"level2" : [

[

"item00",

"item01"

],

[

"item10",

"item11"

]

]

}

}

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

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

null

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

null

有任何想法吗?如果查询语法不像宣传的那样工作,我们正在考虑放弃MongoDB .

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值