player表结构大致如此,且数据量级在百万:

{
	"_id”: 1,
	"level”: 3,
	"name”: "xiaoming”
}

我的需求是:快速取出所有表中的_id,并组成一个array,类似 [1,2,3,4,5,6]

db.getCollection("player").find({{},{"_id": 1}).toArray()

 这样查找出来的结果是 [{"_id": 1}, {"_id": 2}, {"_id": 3}, {"_id": 4}, {"_id": 5}, {"_id": 6}]

解决方法使用聚合查询:

db.getCollection("player").aggregate({$group:{_id:"hello",arr:{$push:"$_id"}}})

输出结果为:

{ ”_id” : ”hello”, ”arr” : [ 1,2,3] }

原文:https://cnodejs.org/topic/5763a8a56ba06f2a22f8ebff

本文地址: http://chenxm.cc/article/1028.html
版权声明: 本文为原创文章,版权归  陈新明  所有,欢迎分享本文,转载请保留出处!
上一篇: 利用双端队列解决回文词算法
下一篇: mac安装软件允许任何来源(sudo spctl --master-disable)
发表评论

还没有留言,还不快点抢沙发?