【发布时间】:2020-10-17 11:14:41
【问题描述】:
我想将一个对象推送到我的 MongoDB 数据库上的一个数组中的一个对象。我正在尝试使用 $push submits[postDate] 但它在第一个 "[" 下给了我一条红线。知道如何解决这个问题吗?
我的代码:
app.post('/add-submit', (req,res) => {
let postDate = new Date();
let dd = String(postDate.getDate()).padStart(2, '0');
let mm = String(postDate.getMonth() + 1).padStart(2, '0');
let yyyy = postDate.getFullYear();
postDate = mm + '/' + dd + '/' + yyyy;
subject = req.body.subject
let pushValue = {
time: req.body.time,
description: req.body.description,
date: postDate
}
console.log(pushValue)
console.log(postDate)
let myquery = { username: req.body.username};
let newvalues = {
$push : {
submits[postDate] : {
[subject] : pushValue
}
}
}
db.collection("users").updateOne(myquery, newvalues, (err, response) => {
if (err) throw err;
console.log("1 document updated");
res.redirect('/users/'+req.body.id)
});
})
但我得到这个错误:
D:\Users\willi\Documents\Node\StudyWebApp\server.js:186
submits[postDate] : {
^
SyntaxError: Unexpected token '['
at wrapSafe (internal/modules/cjs/loader.js:1053:16)
at Module._compile (internal/modules/cjs/loader.js:1101:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
[nodemon] app crashed - waiting for file changes before starting...
这是我希望它在数据库中的样子:
谢谢。
【问题讨论】:
标签: node.js arrays json mongodb express