gpt4 book ai didi

node.js - id大于10的文档值字段的平均值

转载 作者:太空宇宙 更新时间:2023-11-03 23:37:03 24 4
gpt4 key购买 nike

我正在使用express、nodejs、monk。

集合由对象组成:{_id, valueField}

假设 _id 在插入时被覆盖,并且集合中 5 个文档的 id 范围从 1 到 5。它们都是整数。

这就是我现在正在尝试的 - 但我相信语法不正确。该函数返回错误 500,甚至从未到达 console.log(e)。

我想查找集合中 _id 大于 10 的所有对象。

collection.aggregate([
{ $match: {
"_id":{$gt: 3}
}},
{ $group: {
_id: null,
flow: { $avg: "$value" }
}}
], function (e, docs) {
if (e) {
console.log(e);
return;
}
console.log(docs);
res.json(docs);
});

我之前编写的用于获取 id 大于 10 的所有元素的函数可以正常工作:

collection.find({"_id":{$gt: 3}}, {}, function(e,docs){
res.json(docs);
});
<小时/>

收藏内容:

{
"_id": 1,
"value": 10
}

{
"_id": 2,
"value": 5
}
{
"_id": 3,
"value": 4
}

{
"_id": 4,
"value": 12
}
{
"_id": 5,
"value": 10
}

预期结果:

{
"_id": null,
"value": 11
}

最佳答案

啊啊!!应该早点看到这个。抱歉。

您需要 .aggregate().col 访问器:

var db = require('monk')('localhost/test');
var junk = db.get('junk');


junk.col.aggregate(
[
{ "$match": { "_id": { "$gt": 3 } } },
{ "$group": {
"_id": null,
"flow": { "$avg": "$value" }
}}
],
function(err,docs) {
if (err) throw err;
console.log( JSON.stringify( docs, undefined, 2 ) );
}
);

因为 .aggregate() 在原生“Monk” API 下不被原生支持作为函数,因此需要“深入研究”底层“Node Native”集合。

非常抱歉。

关于node.js - id大于10的文档值字段的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30805667/

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