当不可能使用唯一约束时如何防止MongoDB中的重复条目

时间:2018-12-18 10:49:29

标签: mongodb mongoose

我有以下架构

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
            }

     });

有时会创建多个记录(以毫秒为单位)。

如何防止这种情况?

0 个答案:

没有答案