0
我有这样的猫鼬模式:
var listingSchema = new Schema({
street : String,
buildingNumber : Number,
apartmentNumber : Number,
UsersAndQuestions: [{
userID: { type: String, unique: true},
questionID: [String],
_id : false
}],
});
而我只是想用一个新条目UsersAndQuestions
它将包含userID
这是一个String
的更新它,和questionID
,它也是String
(但需要插入到数组中)。
我用这PUT
要求:
app.put('/api/listing/:street/:buildingNumber/:apartmentNumber/addUserInput/:userid/:listingid/:questionid')
所以我都在手的必要参数。
通常,当我想在一个架构更新场我用这个代码,我写道:
app.put('/api/listing/:street/:buildingNumber/:apartmentNumber/addUserInput/:userid/:listingid/:questionid', function (req, res) {
console.log("adding user and question he answered to listing schema");
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), questionID: ObjectId(questionToAdd)}}}
, function (err, listing) {
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!");
res.send("Success!");
}
})
});
这可以防止同一UsersAndQuestions项确切重复。
我的问题是:我想,如果一个userID
存在那么它将追加的questionID
到userID
questionID
阵列。如何做呢?
例子:
我迄今是,如果我的JSON是什么样子的:
{
"_id": "567300e694745bfce5bf6ed2",
"street": "Rines",
"buildingNumber": 1,
"apartmentNumber": 1,
"UsersAndQuestions": [
{
"userID": "564b343fbc2d4310156c6bf9",
"questionID": [
"5661db59b0b1b91c1d63643d"
]
}
]
}
我进行PUT
与同userID
,同样listingID
,但不同questionID
我得到:
{
"_id": "567300e694745bfce5bf6ed2",
"street": "Rines",
"buildingNumber": 1,
"apartmentNumber": 1,
"UsersAndQuestions": [
{
"userID": "564b343fbc2d4310156c6bf9",
"questionID": [
"5661db59b0b1b91c1d63643d"
]
},
{
"userID": "564b343fbc2d4310156c6bf9",
"questionID": [
"5669d90a058ceddc158e97e2"
]
}
]
}
我想要什么得到的是:
{
"_id": "567300e694745bfce5bf6ed2",
"street": "Rines",
"buildingNumber": 1,
"apartmentNumber": 1,
"UsersAndQuestions": [
{
"userID": "564b343fbc2d4310156c6bf9",
"questionID": [
"5661db59b0b1b91c1d63643d", "5669d90a058ceddc158e97e2"
]
}
]
}
是什么做什么,我希望做正确的语法?
非常感谢! :)
回答[这里](http://stackoverflow.com/questions/34340798 /蒙戈-addtoset与 - 多值纠正语法/ 34341272#34341272) –