Я использую ObjectIds для формирования отношений между 2 коллекциями в MongoDB, см. Ниже:
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, но, насколько я понимаю, это не работает с объектами.