gpt4 book ai didi

node.js - 从集合的单个文档中的对象数组中删除单个对象

转载 作者:可可西里 更新时间:2023-11-01 09:57:47 27 4
gpt4 key购买 nike

我有一个问题困扰了我很长一段时间。假设我的文档是这样的

{"owner":"princu7", "books":[{"name":"the alchemist"},  {"name":"the alchemist"}, {"name":"the alchemist"}].

现在,如果我只需要根据名称的匹配从 books 数组中删除一个元素,我该怎么办?我是这样做的

var bookName="the alchemist";
var obj={"name":bookName}
db.collection("colName").update({"owner":"princu7"}, {$pull:{books:obj}}, {multi:false})

但问题是它删除了数组中名称与“炼金术士”匹配的所有条目。我想要的是这个

{"owner":"princu7", "books":[{"name":"the alchemist"},  {"name":"the alchemist"}

但是我得到的是这个

{"owner":"princu7", "books":[]}

阅读文档后,它说 pull 会删除所有符合要求条件的实例,所以也许这就是为什么它会删除数组中符合条件的所有其他条目。那么我应该在这里做什么。感谢阅读。真的感谢您的帮助。

最佳答案

看到这个问题: https://jira.mongodb.org/browse/SERVER-1014

您无法在一次更新中实现您想要做的事情。一种方法是在您的应用程序中修改该记录并保存更改。

关于node.js - 从集合的单个文档中的对象数组中删除单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38176901/

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