在 Mongoose (mongodb node.js) 中,如何更新现有值并插入缺失值,而不删除未指定的值?

Posted

技术标签:

【中文标题】在 Mongoose (mongodb node.js) 中,如何更新现有值并插入缺失值,而不删除未指定的值?【英文标题】:In Mongoose (mongodb node.js), how to update existing values and insert missing, without removing unspecified values? 【发布时间】:2012-04-11 13:24:40 【问题描述】:

我正在尝试维护一个瞬时统计数据块,例如;

model = 
  id: 123,
  stats: 
    fooCount: 117,
    barCount: 175,
    bazCount: 654
  

...并且能够更新现有记录,但只指定 new 值,如下所示:

model.update(
  '_id': 123,
    stats: 
      fooCount: 118 
    
);

...不会破坏stats 中的旧值。如果不围绕我的更新编写太多代码,这是否可能?

【问题讨论】:

【参考方案1】:

您应该在更新中使用$set 运算符,如下所示:

var conditions =  _id: 123 ;
var update =  $set:  fooCount: 118 ;
var options =  upsert: true ;

model.update(conditions, update, options, callback);

该 MongoDB 页面上还有更多感兴趣的运算符。

【讨论】:

以上是关于在 Mongoose (mongodb node.js) 中,如何更新现有值并插入缺失值,而不删除未指定的值?的主要内容,如果未能解决你的问题,请参考以下文章

?? Mongoose?Node.js?MongodB ?????????????

Node 使用mongodb的mongoose是否很坑

使用 mongoose(Node.js) 在 MongoDB 中搜索

使用 Mongoose+Node.js 在 MongoDB 中存储非结构化 JavaScript 对象

??? MongoDB ??? Node.js ????????? Mongoose ??

关于NodeJs为啥要用mongoose操作mongodb