我有一个如下所示的架构:
var RoomSchema = new mongoose.Schema({
venueId: { type: mongoose.Schema.ObjectId, ref: 'User' },
name: {
type: String
},
special: [{
date: {type: Date},
pricing: {
isOpen: { type: Boolean },
openTime: { type: String }
}
}]
});
我想将一个新对象推送到“特殊”数组,除非数组中已存在“日期” . 我知道upsert将添加一个新对象,如果它不存在,但是我如何搜索该对象是否只存在于date属性而不是整个对象?
1 回答
假设新的特殊对象看起来像这样:
你知道场地ID:
试试这个:
这里的关键是使用
'special.date'
作为查询对象中的键,并使用positional operator'special.$.pricing'
更新数组中的正确特殊值(如果存在) .