【发布时间】:2020-03-17 22:43:06
【问题描述】:
我正在尝试向 mongodb 发送一个数组,但 res.json(user) 返回一个空的 biddingGroup:[] 并且 mongodb 文档永远不会出现字段 bidingGroup。我查看了堆栈帖子并看到了有关架构的建议。
我试过了
biddingGroup: [{type: String}],
biddingGroup: [String],
biddingGroup: {type: String},
我还没有找到捕获数据的工作模式。
我什至也硬编码了biddingGroup: ['test'],但它从未出现过。
app.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);
})
);
感谢任何帮助。
【问题讨论】:
-
你能试试这个吗:- 在 Schema ::
biddingGroup: [String]&& Query ::Post.update( { id: req.query.id }, $set : { currentBid: req.query.currentBid, lastBidTimeStamp: req.params.lastBidTimeStamp, biddingGroup: ['test'] })或者如果你必须用新文档替换整个文档 ::Post.update( { id: req.query.id }, { currentBid: req.query.currentBid, lastBidTimeStamp: req.params.lastBidTimeStamp, biddingGroup: ['test'] }) -
-
那么那个 id 在 db 中只有一个匹配的 id 吗?您可以直接运行查询并检查是否有任何文档正在更新并检查特定文档是否正在正确更新..
-
lastBidTimeStamp 和 currentBid 值会在您出价时更新。这是console.log(data)postimg.cc/yktsSnzv的截图我真的不明白为什么它没有出现在mongodb文档中,因为mongoose模型已经定义了biddingGroup:[String]并且该值被硬编码以消除对问题的额外猜测。跨度>
-
你是在使用 .update() 还是其他类似 .findAndUpdate() 的东西,如果你使用 others & console.log(data) 那么它会打印旧文档,你需要通过选项 {new : true} 那么新的文档将被打印在数据中?