【问题标题】:Mongoose update all documentsMongoose 更新所有文件
【发布时间】:2016-10-23 00:17:43
【问题描述】:

我的架构具有数组属性。我想修改每个文档的数组属性。例如,从数组中删除一些元素。实现此类功能的最佳方法是什么?

示例: 用户模式具有带有书名的数组属性。有一次,我想从每个用户中删除某些书名。我想为每个用户实现没有功能。

user.books = _.without(user.books, "SomeBookName1", "SomeBookName2", "SomeBookName3") //Underscore style:) 

【问题讨论】:

  • 我找到了类似问题的答案:link 但它们对属性值进行了硬编码。在我的情况下,这个属性会有所不同。
  • 尽可能使用原子更新数组运算符:docs.mongodb.com/manual/reference/operator/update/#array。但是你的问题太宽泛了;您可以对其进行编辑以显示您正在尝试进行的特定更新吗?
  • @JohnnyHK 我更新了问题)

标签: javascript node.js mongodb mongoose


【解决方案1】:

感谢@JohnnyHK 的帮助。文档中的$pull 函数帮助了我。

Model.update = function ({}, {$pull : {books: "someBookName" } }, {multi: true}, function(err) { //callback });

或者删除多个项目有$pullAll

$pullAll: {books: ["someBookName1", "someBookName2"]}

【讨论】:

    猜你喜欢
    • 2012-03-11
    • 1970-01-01
    • 2015-10-24
    • 2014-12-09
    • 2019-10-23
    • 2015-12-25
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    相关资源
    最近更新 更多