【发布时间】:2020-08-28 20:02:09
【问题描述】:
我正在尝试将从 websocket 获得的数据数组推送到一个对象中,在本例中为 oneMin。这就是我想要一个数组的地方,而不是高于kline 和低于bybit
这是我所看到的:
这是数据模型:
这是我目前拥有的代码:
ws.on('update', async function(message) {
if (message.data !== null) {
console.log(message)
const Open = message.data[0].open;
const High = message.data[0].high;
const Close = message.data[0].close;
const Low = message.data[0].low;
const Volume = message.data[0].volume;
const Timestamp = message.data[0].timestamp;
const OHLCV = [Open, High, Low, Close, Volume, Timestamp]
// var ohlc = new marketModel({
// bybit: {
// kline: {
// ethusd: {
// oneMin: {
// open: Open,
// high: High,
// low: Low,
// close: Close,
// volume: Volume,
// timestamp: Timestamp
// },
// }
// }
// }
// });
// ohlc.push(function (data) {
// console.log("just saved to BTCUSDkline!");
// });
let setOHLCV = await marketModel.updateMany(
{},
{
$addToSet: {
bybit: {
kline: {
ethusd: {
oneMin: {
open: Open,
high: High,
low: Low,
close: Close,
volume: Volume,
timestamp: Timestamp
},
}
}
}
},
},
{
upsert: true,
new: true,
},
);
setOHLCV;
}
});
我已经在这个问题上停留了一段时间,所以任何帮助都将不胜感激!
我想我会在一段时间内第一次求助于 SO!
编辑:所以不是$addToSet,而是$setOnInsert 在对象下的数组中设置数据,更近了一步!它甚至没有替换它,它只是设置给定的第一个数组。现在我可以说$Set 就像$setOnInsert 但它替换了数据。
【问题讨论】:
标签: node.js arrays mongodb mongoose