var urlSchema = new Schema ( {
url : String,
visitor : [{name: String,date: Date}],
counter : Number
});
var url = mongoose.model('url',urlSchema);
var domain = blah blah;
var conditions = { url: domain };
var update = { $inc : {counter:1},
$push : { visitor: [{
name: data.username,
date: new Date()
}]
}
};
var options = {upsert: true};
url.update(conditions,update,options,function(err){
if(err){
console.log(err);
}else{
console.log('A domain successfully added to DB');
}
目前我正在使用上面的模式和代码为每个页面创建一个访问计数器。它会更新 url 文档,该文档计算总访问量并持有访问用户信息。到目前为止一切都很好它工作正常。
现在我想在访问者数组中添加“计数器:编号”,当事件发生时,如果用户已经在访问者数组中,我想更新它而不是推送新的。但我不知道如何制作“双重插入”命令。有没有办法做到这一点?