gpt4 book ai didi

mongodb - 在 Node.js 中执行 MongoDB 查询

转载 作者:可可西里 更新时间:2023-11-01 09:17:37 25 4
gpt4 key购买 nike

我正在尝试在 Node.js 中执行此 MongoDB 命令:

db.events.group({
key: {
'timestamp.d': true
},
cond: {
'event_name': 'search'
},
initial: {
'count': 0,
'empty': 0,
'redos': 0
},
reduce: function(item, summaries) {
summaries.count++;
if (item.result_count == 0) {
summaries.empty++;
}
if (item.original_query) {
summaries.redos++;
}
var totalSuccesses = (summaries.count - summaries.redos - summaries.empty);
summaries.percentNonFailures = (totalSuccesses / summaries.count) * 100
}
})

这在 Mongo 命令中非常有效,就像每天给我摘要一样。当我在 Node.js 中尝试这个时:

db.collection('events', function(err, collection) {
collection.group({
"timestamp.d": true
}, {
"event_name": "search"
}, {
count: 0,
empty: 0,
redos: 0,
percentNonFailure: 0,
}, function(item, summaries) {
summaries.count++;
if (item.result_count == 0) {
summaries.empty++;
}
if (item.original_query) {
summaries.redos++;
}
totalSuccesses = summaries.count - summaries.redos - summaries.empty
summaries.percentNonFailure = (totalSuccesses / summaries.count) * 100
}, function(err, results) {
self.eventEmitter.emit(doneEvent, results)
});
});

我得到一个单一的结果,将每天的所有总数加在一起,所以基本上是整个期间的计数、空、重做的总和。

尝试将查询转换为在 Node.js 中使用时做错了什么?

最佳答案

我遇到了同样的问题。我深入研究了 mongodb 驱动程序代码。

问题是来自子文档的键。司机最终得到类似的东西

obj["timestamp.d"]

这不是你想要的。

我发现的是解决了我的问题的“命令”参数。

db.collection('events', function(err, collection){
collection.group(
[ "timestamp.d" ], // array element, might also work the old way
{ "event_name": "search" },
{
count: 0,
empty: 0,
redos: 0,
percentNonFailure: 0,
},
function(item, summaries){
summaries.count++;
if (item.result_count == 0) { summaries.empty++; }
if (item.original_query) { summaries.redos++; }
totalSuccesses = summaries.count - summaries.redos - summaries.empty
summaries.percentNonFailure = (totalSuccesses / summaries.count) * 100
},
true, // use the group command
function(err, results){ self.eventEmitter.emit(doneEvent, results) }
);
})

你可以在这里看到: collection.js从第 1054 行开始

关于mongodb - 在 Node.js 中执行 MongoDB 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3428246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com