0

我想向另一个数组内的数组添加一个值。我的文件是这样的:

{categories:[{categoryName:"a category", items:[{itemName:"an item", arrayOfValues:[1]}]}]}

我想将 $addToSet 用于 arrayValues。为此,我正在使用查询进行更新

table.update({"categories.items.itemName" : "anItem"}, {$addToSet: "categories.$.items.$.arrayOfValues":"10"})

但我收到一个错误:无法使用字符串字段名称 [$] 附加到数组

我究竟做错了什么?是否可以使用嵌套数组进行更新?

谢谢

4

1 回答 1

3

数组中的数组现在被认为是糟糕的 mongodb 设计(主要是因为你不能有效地操作它们,使用$addToSet和朋友)。而且您更进一步,在数组中的数组中创建了数组!

我知道 MongoDB 的无模式特性会让人感觉您可以将任何结构的文档放入其中并在以后处理它们。不幸的是,这不是现实。你必须知道你在做什么,有什么特点和限制。在这种情况下,您不能使用位置运算符将元素推送到嵌套数组

于 2012-02-14T21:14:49.310 回答