更新/添加单个值到MongoDB中的数组 - 但不作为列表?



我想简单地从MongoDB向元组添加一个值。 键是query,变量position应作为元组中的 -Variable 添加consumer,代码如下:

MongoCollection<Document> collection = ...
Bson filter = Filters.eq("query", queryName);
Bson update = Updates.addToSet("consumer", position);
collection.findOneAndUpdate(filter, update);

但是,当我查看我的数据库时,它看起来像一个列表"consumer" : [ NumberLong(88760) ]并且没有单个值,如producer字段所示:

{ "_id" : ObjectId(...), "query" : "1000", "consumer" : [ NumberLong(88760) ], "producer" : NumberLong(88760) }

我也尝试了Update.push(),结果相同。如何只添加单个值而不将其作为列表?

例如,如果您只需要从内部列表中更新 1 个对象,则可以按以下格式进行更新:

.update_one({"_id": ObjectId(_id)}, {"$set": {"i.5": list[2]}})

其中"i.5"- 列表5索引i.

相关内容

最新更新