首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用猫鼬findOne / save保存对象无法工作

用猫鼬findOne / save保存对象无法工作
EN

Stack Overflow用户
提问于 2016-06-16 16:22:03
回答 3查看 2.9K关注 0票数 4

我的模型是:

代码语言:javascript
复制
GigSchema = new Schema({
  lastUpdate: {
    type: Date,
    "default": null
  },
  type: {
    type: String,
    "default": null,
    "enum": [null, 'mvp', 'code-review', 'extension', 'existent-code-review', 'internal', 'design']
  },
  meta: {
    type: Object,
    "default": {
      chats: 0,
      phoneCalls: 0,
      responseTime: null
    }
  },
  engaged: {
    type: Date,
    "default": null
  }
});

当我这么做的时候

代码语言:javascript
复制
Gig.findOne({
  _id: data.gig
}).populate(populate).exec(function(err, gig) {
  gig.meta.chats += 1;
  return gig.save(function(err) {
    return console.log(err);
  });
});

我正在尝试更新meta字段,但它实际上并没有保存,但也没有错误。我做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-16 17:44:17

因此,答案与使用gig.markModified('meta')有关,因为我正在修改对象的属性。

票数 2
EN

Stack Overflow用户

发布于 2016-06-16 16:53:29

应该使用Populate来获取其他集合中对文档的引用。请参阅http://mongoosejs.com/docs/populate.html

如果只想更新文档中的字段,可以执行以下操作:

代码语言:javascript
复制
Gig.findOne({_id: data.gig},  function (err, gig) {
    gig.meta.chats += 1;
    gig.save(function(err){
        console.log(err);
    })
})

或者您也可以使用Model.findOneAndUpdate

代码语言:javascript
复制
Gig.findOneAndUpdate({_id: data.gig}, { $inc: { meta.chats : 1 }}, {new: true}, function(err, doc){
    if (err){
        console.log(err); 
    } 
})
票数 3
EN

Stack Overflow用户

发布于 2016-06-16 16:51:49

用这个结构..。如果要更新某些内容,而不是保存,则错误捕获和使用update方法会出现问题。

代码语言:javascript
复制
Gig.findOne({
  _id: data.gig
}, function(err, gig){
    if(err){
        throw err;
    }else if(gig){
      Gig.update({_id: data.gig},{
         meta.chats : gig.meta.chats + 1;
     },
    {
      runValidators: true
    },
    function(err){
       if(err) throw err;
    }
    );

});

希望这能帮到你。我在等结果,觉得没事。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37864553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档