处理插入唯一的最佳方法是什么,可以覆盖?

时间:2015-03-21 00:25:12

标签: node.js mongodb mongoose upsert

我想维护IP地址的地理信息集合。

var IpAddressSchema = new Schema({
ip: {
    type: String,
    unique: true
},
geo: Object
}, {
    strict: true
});

IP应该是唯一的。如果IP已存在,则应覆盖该文档。

function storeGeoToMongo() {
emitter.on('inRedis', function (geodata, ipString) {
        console.log('.... Store geoInfo to MongoDB for ' + ipString);
        IpAddress.findOneAndUpdate({
            ip: ipString
        }, {
            ip: ipString,
            geo: geodata
        }, { upsert: true }, function (err, document) {
            if (err) {
                console.log(err);
            } else {
                console.log('Successfully saved document');
            }
        });
    }
);
}

上面有什么需要改进的吗? (谢谢,尼尔。)

0 个答案:

没有答案