【发布时间】:2020-10-16 16:49:19
【问题描述】:
我是如何做到的,所以当我提交到我的数据库时,它会将它添加到具有相同名称的对象中?我想要它,以便当我在同一日期提交一个数组时,它们会在同一个对象下。当我尝试时,它会自动在父元素和我正在添加的元素之间添加一个对象。
MongoDB adds this object between the elements I want.
我试着到处寻找,但能找到任何帮助。
我的代码:
app.post('/add-submit', (req,res) => {
var query = { username: req.body.username };
db.collection("users").find(query).toArray((err, result) => {
if (err) throw err;
console.log(result);
});
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
pushValue = {"submits": {[postDate]: { [subject] : [ time = req.body.time, description = req.body.description, date = postDate ]}}}
console.log(pushValue)
let myquery = { username: req.body.username};
let newvalues = { $push: pushValue }
db.collection("users").updateOne(myquery, newvalues, (err, response) => {
if (err) throw err;
console.log("1 document updated");
res.redirect('/users/'+req.body.id)
});
})
我正在尝试做的事情:
谢谢。
【问题讨论】:
-
我不太清楚你想要实现什么。
The $push operator appends a specified value to an array.所以你每次点击这个端点时都会推送新对象。查看屏幕截图,这正是我所期望的。但既然你在问,这可能不是你所期望的。您到底期望会发生什么? -
您希望文档在您到达端点后会是什么样子?尝试在问题中添加预期的文档。
-
我有一个对象,它被命名为它被放入数据库的日期,我想在以日期命名的对象的不同后请求上添加多个元素。但它总是会创建一个新对象。我不是很有经验,抱歉。
-
我在下面贴了一些建议,如果有帮助请告诉我
-
请接受正确答案,如果仍有遗漏,请提供反馈!
标签: node.js json mongodb express