【问题标题】:MongoDB/Mongoose Update Embeded Array By Element NumberMongoDB/Mongoose 按元素编号更新嵌入式数组
【发布时间】:2016-01-23 12:19:21
【问题描述】:

我是 MongoDB/Mongoose 的新手。我有一个用户的有界数组。我将如何查询 firstName: bob 并更新 pet[0] 数组?

在阅读示例时,查询总是在嵌入的文档数组本身上进行,因为每个元素值在整个集合中都是唯一的。由于我的情况并非如此,因此我需要查询外部文档(如 firstName),然后按元素编号更新元素。

例如:

UserModel.update(
    { firstName: "bob" },
    {'$set':  {'pets.$.
    //not going to work

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    你可以试试这个

    UserModel.findOne({ firstName: "bob" }, function(err, user) {
        user.pets[0] = // new pets is here.
        user.save(function(err) {...});
    

    【讨论】:

    • 啊...谢谢。我不知道就这么简单。我以为我必须使用$set
    • @dman,如果您不知道数组中元素的位置,则使用位置 $ 运算符。参考this
    • 这会比update() 慢吗,因为它会在更新之前返回整个文档?
    猜你喜欢
    • 2021-06-17
    • 2020-04-18
    • 2020-10-01
    • 1970-01-01
    • 2022-01-22
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多