node.js - 如何用mongodb获取某个字段集合?

【字号: 日期:2022-10-05浏览:25作者:雯心

问题描述

例如我要获得所有的name字段集合[’bob’, ’ahn’, ’abc’],该怎么写sql

{ '_id' : 2, 'name' : 'bob', 'age' : 42, 'type' : 1, 'status' : 'A', 'finished' : [ 11, 25 ], 'badges' : [ 'green' ]}{ '_id' : 3, 'name' : 'ahn', 'age' : 22, 'type' : 2, 'status' : 'A', 'finished' : [ 6 ], 'badges' : [ 'blue', 'red' ]}{ '_id' : 6, 'name' : 'abc', 'age' : 43, 'type' : 1, 'status' : 'A', 'finished' : [ 18, 12 ], 'badges' : [ 'black', 'blue' ]}

问题解答

回答1:

不管通过何种方式,数据库给你的结果只会是:

[{name: ’bob’},{name: ’ahn’},{name: ’abc’}]

如果是在shell下面,可以用JS脚本进行转换:

var cursor = db.coll.find({}, {_id: 0, name: 1});var result = cursor.map(function(doc) { return doc.name;});

这里用到cursor.map方法。在不同的驱动中应该都有不同的实现。但这部分工作实际上不是数据库为你完成的,而是驱动在app端做的转换。数据库是紧要资源,在不影响性能的前提下应该尽可能把消耗资源的行为都放到应用端。因为相比数据库,应用的水平扩展要容易并且成本更低。

相关文章: