gpt4 book ai didi

Mongodb不能使用部分(...)遍历元素({... : undefined})]

转载 作者:可可西里 更新时间:2023-11-01 09:58:49 25 4
gpt4 key购买 nike

升级到 3.0 mongo 驱动程序后,我在更新请求中收到一些新错误。对于这样的更新:

db.table.update({_id: .... } , {$set : { "tags.Tag1" : true }});

我收到了

cannot use the part (tags of tags.Tag1) to traverse the element ({tags: null})]]

问题是我更新的文档已经包含 tags 的默认值:null。如果我手动将其从 document 中删除,更新将开始正常工作。这对我来说是一些新行为,它发生在将 mongo 驱动程序从 2 更新到 3(甚至不是数据库本身)之后。

但现在我想知道如何避免这个错误。我当然可以检查“标签”是否已经定义,然后才将 $set 设置为元素或整个 map 。但这意味着 3 个请求 vs 一个旧问题和其他问题,如原子性。

最佳答案

虽然这是一篇旧文章,但我认为您正在寻找的是 $ positional operator

我猜你的“标签”是一个数组。所以上面的例子可能是这样的

db.table.update({_id: .... } , {$set : { "tags.$.Tag1" : true }});

希望对您有所帮助!

关于Mongodb不能使用部分(...)遍历元素({... : undefined})],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39088123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com