我有以下架构
var mongoose = require('mongoose');
mongoose.Promise = require('bluebird');
// MongoDB schema
var Schema = mongoose.Schema;
// Create a schema
var userPageSchema = new Schema({
user: {type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true},
pageid: {type: String, required: true},
is_del : { type: Boolean, default: false },
created_at : Date,
updated_at : Date
});
var UserPage = mongoose.model('UserPage', userPageSchema);
module.exports = UserPage;
我有一个名为pageid
的字段。每当用户删除页面时,我就将is_del
设置为true。
登录的用户可以链接其社交媒体页面(pageid
是社交媒体页面的页面ID)。
对于每个pageid
,只有一个记录的is_del
值为false。
因此,我有一个查询,该查询根据查询检查计数并进行相应处理。
UserPage.countDocuments({'user':user, 'pageid' : pageid, 'is_del': false}).exec(function (err, count) {
if(count==0)
{
// Create New Record
} else {
// Send Error Message
}
});
有时会创建多个记录(以毫秒为单位)。
如何防止这种情况?