我已经尝试重新安装和重建npm,但问题仍然存在.
最初,问题在于模块mongodb
:我没有那个包,所以我mongodb
使用这个命令安装npm install mongodb
.
它向我显示以下错误:
dyld: Symbol not found: _node_module_register
我已经在mongo中使用了聚合,我知道在分组计数等方面的性能优势.但是,mongo在计算集合中所有文档的这两种方式上的性能有何不同?:
collection.aggregate([
{
$match: {}
},{
$group: {
_id: null,
count: {$sum: 1}
}
}]);
Run Code Online (Sandbox Code Playgroud)
和
collection.find({}).count()
Run Code Online (Sandbox Code Playgroud)
更新:第二种情况:假设我们有这样的样本数据:
{_id: 1, type: 'one', value: true}
{_id: 2, type: 'two', value: false}
{_id: 4, type: 'five', value: false}
Run Code Online (Sandbox Code Playgroud)
用aggregate()
:
var _ids = ['id1', 'id2', 'id3'];
var counted = Collections.mail.aggregate([
{
'$match': {
_id: {
'$in': _ids
},
value: false
}
}, {
'$group': {
_id: "$type",
count: {
'$sum': 1
}
}
}
]);
Run Code Online (Sandbox Code Playgroud)
用count()
:
var counted …
Run Code Online (Sandbox Code Playgroud)