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 ドキュメントをアップサートします。これまでのところとても良い 正常に動作しています。
今、私は訪問者の配列に「カウンター:番号」を追加したいのですが、イベントが発生したときに、ユーザーがすでに訪問者の配列にいる場合は、新しいものをプッシュする代わりにそれを更新したいと考えています。しかし、「ダブル アップサート」コマンドの作成方法がわかりません。とにかくそれをすることはありますか?