【发布时间】:2019-02-19 10:29:47
【问题描述】:
我正在使用 ObjectIds 在 MongoDB 中的 2 个集合之间形成关系,见下文:
const userSchema = new Schema({
username: { type: String, unique: false, required: false },
password: { type: String, unique: false, required: false },
concerts:[
{
type: Schema.Types.ObjectId,
ref: "Concert", unique: true, required: false
}
]
})
const concertSchema = new Schema({
userId: {type: String, unique: false, required: false},
concertId: { type: Number, unique: false, required: false },
artist: { type: String, unique: false, required: false },
venue: { type: String, unique: false, required: false },
date: { type: Date, unique: false, required: false },
time: { type: String, unique: false, required: false },
city: { type: String, unique: false, required: false },
latitude: { type: Number, unique: false, required: false },
longitude: { type: Number, unique: false, required: false },
attendees: [
{
type: Schema.Types.ObjectId,
ref: "User", unique: true, required: false
}
]
})
但是,我在我的数据库中遇到了重复 ObjectId 的问题,下面是我将 ObjectId 添加到数据库的代码段:
then(show => {
return db.User.findOneAndUpdate(
{
"_id": req.body.userId
}, {
$push: {concerts: show._id}
}, {
new: true
}
).then(res.json(show))
})
}
else {
return db.User.findOneAndUpdate(
{
"_id": req.body.userId
}, {
$push: {concerts: concert._id}
}, {
new: true
})
.then(res.json(concert))
}
})
我尝试过 $addToSet 但我的理解是这不适用于对象。
【问题讨论】:
标签: mongodb mongoose mongoose-populate