【问题标题】:How to open and save array in MongoDB with NodeJS如何使用 NodeJS 在 MongoDB 中打开和保存数组
【发布时间】:2020-07-16 08:57:52
【问题描述】:

我在 MongoDB 中的聚合框架有问题。这个问题是我把MongoDB中的数据保存在Array中造成的。

我想要这样,当数据保存时它不在数组中。下面的截图说明。

这是我在 MongoDB 中保存数据的方法。这部分是主要问题 - const myobj = { Name: symbol, Array: BTCdata[0], Date: dateTime }; 如您所见,我有一个 Array: BTCdata[0],这是我第一次打开数组,因为在我在数组中放置数组之前。 (检查屏幕截图)。在其中一张屏幕截图中,您可以看到 2 个数组。数组 > 数组 > 0 > 对象。就在我使用Array:BTCdata 时,当我更改为Array:BTCdata[0] 时,数组消失了。

如何打开另一个数组,该数组与第二个屏幕截图中的数据相同?我只是不需要这些数组,因为我无法正确使用聚合。

有问题的代码区域

let db = await MongoClient.connect(url, { useUnifiedTopology: true });
    const dbo = db.db('Crypto');
    const myobj = { Name: symbol, Array: BTCdata[0], Date: dateTime };
    await dbo.collection(symbol).insertOne(myobj);
    console.log('1 document inserted');
    db.close();

从 API 接收数据的代码部分

  const btcusdtdata = data.map(d => {
        return {
            Open: parseFloat(d[1]),
            High: parseFloat(d[2]),
            Low: parseFloat(d[3]),
            Close: parseFloat(d[4]),
            Volume: parseFloat(d[5]),
            Timespan: 30,
        }
    });

如果需要,我可以添加完整代码以显示完整逻辑。

EDIT1 我尝试了@Molda 建议的方式

    const myobj = { Name: symbol, Array: BTCdata[0][0], Date: dateTime };

我在 MongoDB 中收到该数组为空。里面没有任何数据。

EDIT2 正如@prasad_ 所要求的,这里是 JSON 视图。我希望我做得对。这是我调用 API 后收到的(来自我的终端的结果)

[
  {
    Open: 0.0000135,
    High: 0.00001355,
    Low: 0.00001337,
    Close: 0.0000134,
    Volume: 7584645,
    Timespan: 30
  }
]

【问题讨论】:

  • 要获取内部对象,请使用另一个[0],就像BTCdata[0][0],然后您可以使用var data = Object.assign({ _id: .., Name: ..}, BTCdata[0][0]); 扩展带有_id 和名称的对象
  • @Molda 感谢您的回答!我试过你的方法,它不起作用。我收到“空”而不是数据。您是否在我的示例中显示了可能性?也许我错误地声明了它。我会用你的尝试编辑主要问题
  • 请将示例文档以 JSON 格式发布(文本格式正确)。
  • @prasad_ 感谢您的回答!我编辑了主要问题,希望我能正确理解您的要求。请检查 EDIT2。

标签: node.js arrays mongodb


【解决方案1】:

找到了解决办法。

const myobj = Object.assign({ Name: symbol, Date: dateTime }, BTCdata[0]);

感谢这个奇妙的功能 - Object.assign。不需要在代码中有另一个[0]。只需设置Object.assign并正确放置数组即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 2011-04-02
    • 1970-01-01
    相关资源
    最近更新 更多