mongodb如何取出指定键值对的值??
发布于 5 年前 作者 HelloKevinTian 5232 次浏览 来自 问答

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}]

请问各位mongodb能否直接取出这个数组 [1,2,3,4,5,6]??

7 回复

一定要取出来么,自己map(item => item._id)就可以。不过还是没解答你的问题- -

@DevinXian 这个可以。只是想知道只通过mongodb能否快速有效的完成~

使用聚合

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

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

@Qquanwei 哇,谢啦。

@DevinXian 同意1L做法。。

@Qquanwei 3L这种做法,速度跟1L的做法有什么差异吗?

@alsotang 3L是在数据库中执行操作,1L是取出来在本地操作,性能是减少了本地的cpu 如果考虑到带宽,1L的传输了冗余数据

@Qquanwei 哈哈,这是个问题

回到顶部