我在猫鼬中有以下模型:
var RelationSchema = new Schema({
user : {type:ObjectId, ref:'users'}
, type : String
, remarks : String
, createdOn : {type:Date, default:Date.now}
}, {_id:false});
var UserRelationSchema = new Schema({
user : {type:ObjectId, ref:'users'}
, relations : [RelationSchema]
});
var UserRelation = mongoose.model('user_relations', UserRelationSchema);
Run Code Online (Sandbox Code Playgroud)
每次我使用相同的值运行以下命令时,都会将新的子文档添加到数组中relations。如果我createdOn从架构中删除字段RelationSchema,那么它就可以正常工作。
UserRelation.update(
{"user":<ObjectId>}
, {
$addToSet: {
"relations": {"user":<ObjectId>,"type":<String>}
}
, {upsert:true}
});
Run Code Online (Sandbox Code Playgroud)
我的问题是:
如何addToSet使用日期/时间字段?
为了$addToSet不添加元素,该元素必须与现有元素完全匹配。鉴于createdOn当前时间,很容易看出为什么在您的情况下从未发生这种情况。
因此$addToSet对于具有字段的元素来说效果很好Date,但它需要精确匹配,就像任何其他类型一样。
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |