我正在尝试创建一个脚本,该脚本将计算MongoDB集合中每个资产的最近200天的平均Volume
。(超过100个集合)(每个资产都有一个特定的集合)< / p>
聚合框架代码
const saveToDatebase = async(symbol, BTCdata) => {
try {
const url = 'mongodb://username:password@ipadress/port?retryWrites=true&w=majority';
let dateTime = getDateTime();
let db = await MongoClient.connect(url, { useUnifiedTopology: true });
const dbo = db.db('Crypto');
const myobj = Object.assign({ Name: symbol, Date: dateTime }, BTCdata[0]);
await dbo.collection(symbol).insertOne(myobj);
const average = await dbo.collection(symbol).aggregate([{
'$match': {
'date': { '$gte': new Date((new Date().getTime() - (200 * 24 * 60 * 60 * 1000))) }
},
},
{
'$group': {
_id: null,
'Volume': { '$avg': "$Volume" }
},
}
]).toArray();
console.log('1 document inserted');
console.log(average);
db.close();
} catch (e) {
console.error(e)
}
};
正如您在这里看到的那样,我正在尝试建立一个阶段,以首先获取最近200天的文档,然后计算它们的平均值。
但是当我使用NodeJS运行脚本时。
我没有在终端中看到任何响应,但是推测出这行的任何原因-console.log(average)
。
我只是弄错了我做错了什么,因为我在终端中看不到任何响应,甚至没有错误。
最终目标:计算数据库中过去200天中每项资产的平均Volume
。