创建/更新Mongoose对象的最佳实践

时间:2013-05-03 01:38:35

标签: javascript node.js mongodb mongoose

我有一些多深度的Mongoose模式。在创建/更新时,我当前将每个提供的值从json对象分配给对象字段。不过我想做几件事。我希望自动删除空值以防止Mongoose尝试验证它们,其次我不想单独分配每个值/字段,而是将整个json对象传递给它并让架构使用它来处理验证 - 我假设如果json对象中存在额外/不存在的字段,则它们将被丢弃。因此,我的解决方案是创建一个函数,该函数将递归遍历json对象,同时删除空值以及禁用字段(即created_at,_id等),然后将其余部分传递并保存。有没有人对Mongoose中的某些东西有过建议,或者有一些我没有看到这种方法的问题?

1 个答案:

答案 0 :(得分:0)

也许这种方法是您想要的findByIdAndUpdate

实际上,当您使用save()方法时,它只会更新您更改的字段:

  

result.true_name =“test233334”;
  result.save();   

  日志:Mongoose: admins.update({ _id: ObjectId("51b5af1a370c3fa716000001") }) { '$set': { true_name: 'test233334', updated_at: new Date("Mon, 10 Jun 2013 10:49:38 GMT") } } {}