我已經看過了stackoverflow,但是我沒有找到答案。我試圖將對象添加到我的本地MongoDB中不是重複的新(空)數組。我也想用其他對象更新這個數組。使用Mongoose.js將對象添加到文檔中的對象數組
我看過$ push和$ addToSet,示例使用的是「id」(_id),直到我添加第一個對象時纔會創建它。
我正在使用Node.js,Mongoose.js,Mongodb,Express.js。
我的模式是:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var barSchema = new Schema({
location: [{
name: String,
city: String,
total: Number
}]
});
var Bar = mongoose.model('Bar', barSchema);
module.exports = Bar;
我試圖用這個;
var newBar = bar({
location: [{ "name": req.body.bar, "city": req.body.city, "total": 0 }] });
newBar.save(function(err) {
if (err) throw err;
});
我也用了$一推成功,但在這種情況下,我沒有得到一個「ID」
user.findByIdAndUpdate(req.user._id, { $push: {
barlist: { "name": req.body.bar,
"rsvp": true } } },
function(err, user) { });
哪還給這一點;
{
"_id" : ObjectId("######"),
"location" : [
{
"name" : "1st Bar",
"city" : "Boston",
"total" : 0,
"_id" : ObjectId("#########")
}
],
"__v" : 0
}
{
"_id" : ObjectId("######"),
"location" : [
{
"name" : "2nd Bar",
"city" : "Boston",
"total" : 0,
"_id" : ObjectId("#########")
}
],
"__v" : 0
}
但是我試圖得到這個;
{
"_id" : ObjectId("#######"),
"location" : [
{
"name" : "Biddy Early's",
"city" : "Boston",
"total" : 0
},
{
"name" : "Some Bar Name",
"city" : "Boston",
"total" : 0
}
]
}
如果您不想在位置對象中使用_id,那麼在模式中添加_id:false。 '位置:[{name:String,city:String,total:Number,_id:false}] –
謝謝Tarush我不知道我能做到這一點。然而那不是我所關注的。儘管將來我會記住這一點。我感謝您的幫助。 –