【发布时间】:2021-07-02 10:26:17
【问题描述】:
我一直在尝试删除 MongoID 文档中数组的最后一个元素,但由于某种未知原因而苦苦挣扎。
我们在 MongoDB 中有一个文档:
{
"_id" : ObjectId("606c774ff34c295ec7ac5eb7"),
"child_table" : [
{
"_id" : ObjectId("606c7768f34c291171ac5ec2"),
"string3" : "y"
},
{
"_id" : ObjectId("606c7768f34c291171ac5ef6"),
"string3" : "u"
}
]
}
此文档包含在 record 中。
record = Record.find_by(:id=> "606c774ff34c295ec7ac5eb7")
我可以删除我正在处理的第二个元素:
record.child_table.delete_at(record.child_table.count-1)
这工作正常,数组child_table 的第二个元素被删除。好的。
但是,当我去删除数组中的最后一个元素时,代码运行没有错误,但我去检查 Mongo 中的文档,它仍然显示最后一个元素。
我也试过跑步:
self.unset(:child_table)
但这对我没有任何帮助。
请告诉我任何建议! 谢谢
【问题讨论】:
-
从您的数据中删除不必要的字段,然后添加一个可运行的代码 sn-p 包含您遇到问题的插入和删除。
-
@D.SM 我已经从数据中删除了不必要的字段。这只是我遇到问题的删除。可运行代码 sn-p 是单行代码,在原始问题中。如前所述,当数组包含超过 1 个元素时,该行代码有效。
-
我在您的问题中看不到任何可运行的代码。 “可运行”是指除您之外的其他人在他们的计算机上没有您的应用程序的其余部分。
标签: arrays ruby-on-rails mongodb mongoid