【发布时间】:2016-03-24 06:54:38
【问题描述】:
我有这个猫鼬模式:
var listingSchema = new Schema({
street : String,
buildingNumber : Number,
apartmentNumber : Number,
UsersAndQuestions: [{
userID: String,
questionID: [String]
}]
});
我只想用UsersAndQuestions 的新条目来更新它,其中包含一个userID,它是一个String,和一个questionID,它也是一个String(但需要插入到数组中)。
我正在使用这个PUT 请求:
app.put('/api/listing/:street/:buildingNumber/:apartmentNumber/addUserInput/:userid/:listingid/:questionid')
所以我手头有所有必要的参数。
通常,当我想更新架构中的字段时,我会使用我编写的以下代码:
app.put('/api/listing/:street/:buildingNumber/:apartmentNumber/addReportedUser/:userid/:listingid', function (req, res) {
var listingToUpdate = req.params.listingid;
var idToAdd = req.params.userid;
Listing.update({_id: ObjectId(listingToUpdate)},
{$addToSet: {reportedUsersIDs: ObjectId(idToAdd)}}
, function (err) {
if (err) {
res.send("There was a problem adding the reportedUserID to the listing" + err);
}
else {
console.log("Success adding reportedUserID to listing!");
}
})
});
您可以看到我使用了$addToSet,并且效果很好。但现在我想将 两个 参数添加到一个数组字段。我想过做这样的事情:
app.put('/api/listing/:street/:buildingNumber/:apartmentNumber/addUserInput/:userid/:listingid/:questionid', function(req,res){
var listingToUpdate = req.params.listingid;
var idToAdd = req.params.userid;
var questionToAdd = req.params.questionid;
Listing.update({_id: ObjectId(listingToUpdate)},
{$addToSet: {UsersAndQuestions.userID : ObjectId(idToAdd), UsersAndQuestions.questionID : ObjectId(questionToAdd)}}
, function (err) {
if (err) {
res.send("There was a problem adding the user and question to the listing" + err);
}
else{
console.log("Success adding user and question to the listing!");
}
})
});
但我显然得到了SyntaxError。
执行我尝试执行的操作的正确语法是什么?
非常感谢! :)
【问题讨论】:
标签: javascript json node.js mongodb mongoose