gpt4 book ai didi

javascript - 如何在 Mongoose 中排除 "upsert-ed"字段?

转载 作者:太空宇宙 更新时间:2023-11-04 01:12:39 25 4
gpt4 key购买 nike

var UserData = function(){
var self = this;
this.schema = Schema({
userID: String,
firstName: String,
lastName: String,
...
//many other fields.
...
isActive: {type: "Boolean", default: true}
}, { collection: 'UserData' });

this.model = db.model('UserData', self.schema);

this.upsert = function(object){
//some logic
self.model.update({userID: object.userID}, object, {upsert: true}, function(err){...});
};
}

此代码工作正常,除了 isActive 将在更新插入期间被覆盖。

我想实现这样的逻辑:

  1. 对于新记录,默认 isActive 为 true。
  2. 更新插入时,保持isActive不变。

如何实现这一目标?提前致谢!

最佳答案

将文档转换为对象并删除您不想写入的属性。然后更新插入对象。

this.upsert = function (doc) {
var object = doc.toObject();
delete object.isActive;

self.model.update({userID: object.userID}, object, {upsert: true}, function(err){...});
};

关于javascript - 如何在 Mongoose 中排除 "upsert-ed"字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15009755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com