分享

mongoDB数组查询如何只返回数组中的一条记录

xdq_0518 发表于 2013-10-17 21:37:47 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 8 10322
[i]
如图所示每次数组查询都是返回匹配的整个数组记录,如何只返回匹配的数组元素?
比如上图中如何只返回array[2,3] ? 项目急用,火烧眉毛,已经找多大量资料任然无果,求大家帮忙!!
              
               
               

已有(8)人评论

跳转到指定楼层
lu467344991 发表于 2013-10-17 21:38:38

            自己顶起!
        
回复

使用道具 举报

chenzhenbabl 发表于 2013-10-17 21:39:28

            试一试这个ok不.
db.users.find({}, {'name' : 1, 'groups' : 1});
第一个{} 放where条件 第二个{} 指定那些列显示和不显示 (0表示不显示 1表示显示)
        
回复

使用道具 举报

zhouyimei 发表于 2013-10-17 21:39:59

            这个我懂的,但这样是不能解决问题的。
最终,我从mongodb官网得知这是不可以的。所以还是不能太高估数组。
        
回复

使用道具 举报

MNBVC94449 发表于 2013-10-17 21:40:39

            可以建议mongo官方支持这个功能,呵呵
        
回复

使用道具 举报

MNBVC94449 发表于 2013-10-17 21:41:10

            官方说这是不可能的。。。
        
回复

使用道具 举报

zhouyimei 发表于 2013-10-17 21:41:50

            直接加显示的列名啊。
        
回复

使用道具 举报

zhouyimei 发表于 2013-10-17 21:42:30

            可以的,比如
db.test.insert({names:["a","d","e","c"]});
db.test.find({},{names:{$slice:1}}) //返回第一个
db.test.find({},{names:{$slice:[1,1]}})//返回第二个
db.test.find({},{names:{$slice:-1}})//返回最后一个
        
回复

使用道具 举报

MNBVC94449 发表于 2013-10-17 21:43:11

            用aggregate功能可以,赶紧去研究下吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条