gpt4 book ai didi

mongodb - 从 MongoDB 中的对象数组中删除单个对象

转载 作者:IT老高 更新时间:2023-10-28 13:34:07 26 4
gpt4 key购买 nike

假设我们有以下文档集合:

{ "_id" : ObjectId("50a69fa904c8310609600be3"), "id" : 100, "city" : "San Francisco", "friends" : [     {   "id" : 1,   "name" : "John" },  {   "id" : 2,   "name" : "Betty" },     {   "id" : 3,   "name" : "Harry" } ] }
{ "_id" : ObjectId("50a69fc104c8310609600be4"), "id" : 200, "city" : "Palo Alto", "friends" : [ { "id" : 1, "name" : "Carol" }, { "id" : 2, "name" : "Frank" }, { "id" : 3, "name" : "Norman" } ] }
{ "_id" : ObjectId("50a69fc304c8310609600be5"), "id" : 300, "city" : "Los Angeles", "friends" : [ { "id" : 1, "name" : "Fred" }, { "id" : 2, "name" : "Neal" }, { "id" : 3, "name" : "David" } ] }
.
.
.

现在假设 Frank (Palo Alto, id=2) 不再是我的 friend ,我想将他从收藏夹中删除。我认为以下可能有效,但它没有:

db.test.update({"city":"Palo Alto"},{"$pull":{"friends.name":"Frank"}})

我希望能够做这样的事情。删除文档集合中数组中的对象。你是怎么做到的?

最佳答案

你很亲密。查询应该是这样的:

db.test.update({"city":"Palo Alto"},{"$pull":{"friends":{"name":"Frank"}}});

$pull 接受一个对象,其字段指定字段数组“friends”。值 {"name":"Frank"} 表示查询(在数组内部运行)以查找要提取的元素。

关于mongodb - 从 MongoDB 中的对象数组中删除单个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13423873/

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