javascript – Mongoose – 在Subdoc上增加字段(如果存在),否则创建新的
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Mongoose – 在Subdoc上增加字段(如果存在),否则创建新的,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1145字,纯文字阅读大概需要2分钟。
内容图文
![javascript – Mongoose – 在Subdoc上增加字段(如果存在),否则创建新的](/upload/InfoBanner/zyjiaocheng/734/0823e1a6470f4837a39898d88ef310c2.jpg)
我想做什么.
我有一个userSchema,其中包含operationCountSchemaobjects的列表.我想要做的是创建一个静态方法,如果它存在(由month_id标识)字段,则更新其中一个操作计数子文档上的计数字段.如果当前月份不存在operationCountSchema文档,则应创建新文档.有没有办法在猫鼬中实现这种行为?我试过使用upsert无济于事.怎么会这样做?谢谢.
码
var operationCountSchema = mongoose.Schema({
month_id: String,
count: { type: Number, default: 0 }
}, {_id : false});
var userSchema = mongoose.Schema({
username : { type: String, unique: true, required: true },
email: { type: String, unique: true, required: true },
password: String,
operation_counts: [operationCountSchema]
});
userSchema.statics.incrementOperationCount = function(userID, callback) {
var currDate = new Date();
var dateIdentifier = currDate.getFullYear() + "-" + currDate.getMonth();
//NEED TO INCREMENT OPERATION COUNT IF ONE FOR MONTH EXISTS,
//ELSE IF IT DOES NOT EXIST, CREATE A NEW ONE.
}
此外,欢迎任何关于可以实现此功能的替代方式的建议.
解决方法:
我想你想要findOneAndUpdate() with upsert:true:
operationCountSchema.findOneAndUpdate({
month_id : dateIdentifier,
}, {
$inc : { count : 1 }
}, {
upsert : true
}, callback);
(另)
内容总结
以上是互联网集市为您收集整理的javascript – Mongoose – 在Subdoc上增加字段(如果存在),否则创建新的全部内容,希望文章能够帮你解决javascript – Mongoose – 在Subdoc上增加字段(如果存在),否则创建新的所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。