NodeJS无法在MongoDB中添加拓扑

我想更新我的JSON这是一个数组元素(简单,呃?)的字段。
我想将userid添加到reportedUsersIDs数组中。
我正在运行的查询(通过邮递员):
HTTP://本地主机:3000 / API /列表/ myStreet / 1/1 / addReportedUser / 564b343fbc2d4310156c6bf9 / 5671a8f694745bfce5bf6ecf

我检查了数据库中存在的两个ID,列表本身也存在(在street = myStreet,buildingNumber = 1,apartmentNumber = 1)。
routes.js的代码是:

 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, listing) { if (err) { res.send("There was a problem adding the reportedUserID to the listing" + err); } else { console.log("Success adding reportedUserID to listing!"); res.json(listing); } }) }); 

它返回成功,但JSON保持不变。

相关数据:

上市的模式我试图改变:

 var listingSchema = new Schema({ street : String, buildingNumber : Number, apartmentNumber : Number, reportedUsersIDs: [String] }); 

和我的用户架构:

 var userSchema = new Schema({ local : { email : String, password : String }, name : String }); 

为什么我的JSON没有被更新?

由于reportedUsersIDs在您的架构中作为String数组声明,所以您应该将它们作为string添加,而不是ObjectId

 { $addToSet : { reportedUsersIDs : idToAdd } } 

或者,你可以改变你的模式,所以它是一个ObjectId的数组:

 reportedUsersIDs : [ Schema.Types.ObjectId ]