【发布时间】:2015-11-10 10:12:57
【问题描述】:
我有一个如下所示的架构:
> db.test.findOne() { "_id" : "1:1419552000", “l0”:[ { “l1”:[ "1", "2", "3", “4” ] }, { “l1”:[ "11", "12", "13", “14” ] }, { “l1”:[ "21", "22", "23", “24” ] }, { “l1”:[ "31", "32", "33", “34” ] }, { “l1”:[ "41", "42", "43", “44” ] } ] }我希望能够从级别 1 (l1) 的任何数组中获取一系列元素。但是 $slice 运算符不能做到这一点。这根本不可能吗?
> db.test.findOne({}, {"l0" : {$slice: 1}}) { "_id" : "1:1419552000", “l0”:[ { “l1”:[ "1", "2", "3", “4” ] } ] } > db.test.findOne({}, {"l0.0.l1" : {$slice: 2}}) { "_id" : "1:1419552000", “l0”:[ ... 返回整个对象 ... }欢迎任何指点或帮助。谢谢!
【问题讨论】:
-
你的预期输出是什么?
-
对不起,我应该提到,对于我的错误查询:
db.test.findOne({}, {"l0.0.l1" : {$slice: 2}})它应该是:{ "_id" : "1:1419552000", "l0" : [ "2", "1" ] }或类似
标签: arrays mongodb mongodb-query slice