首页 > 解决方案 > 无法将数组添加到 mongodb

问题描述

我正在尝试向 mongodb 发送一个数组,但是res.json(user)返回一个空的biddingGroup:[]并且 mongodb 文档永远不会出现字段 bidingGroup。我查看了堆栈帖子并看到了有关架构的建议。我试过了

biddingGroup: [{type: String}],
biddingGroup: [String],
biddingGroup: {type: String},

我还没有找到捕获数据的工作模式。

我什至也硬编码了 bidGroup: ['test'] ,但它从未出现过。

应用程序.js

app.put('/api/listings/:id', (req, res) =>

Post.update({
  id: req.query.id
}, {
  $set: {
    currentBid: req.query.currentBid,
    lastBidTimeStamp: req.params.lastBidTimeStamp,
    biddingGroup: ['test']
  }
}, {
  multi: false //set to false to ensure only one document gets updated
}).exec().then(data => {
  console.log(data);
}, err => {
  console.log(err);
})
    );

任何帮助表示赞赏。

标签: mongodbexpressmongoose

解决方案


您需要exec()在最后使用来运行查询。那是实际运行请求并向您返回承诺的函数。另外,您对该update功能的使用通常已关闭。

尝试这个:

Post.update({
  id: req.query.id
}, {
  $set: {
    currentBid: req.query.currentBid,
    lastBidTimeStamp: req.params.lastBidTimeStamp,
    biddingGroup: ['test']
  }
}, {
  multi: false //set to false to ensure only one document gets updated
}).exec().then(data => {
  console.log(data);
}, err => {
  console.log(err);
});

推荐阅读