我可以在地图上使用 $addToSet 吗?

发布于 2025-01-07 05:35:11 字数 483 浏览 2 评论 0原文

该文档显示我可以使用 $addToSet 在文档不存在时将其添加到文档中。但我不确定它是否可以用于将 Map 类型添加到文档中。 例如:

public static void AddToSet(DBCollection collection, Map conditions, String key, Object value) {
    BasicDBObject so = new BasicDBObject();
    so.putAll(conditions);
    collection.update(so, new BasicDBObject("$addToSet", BasicDBObjectBuilder.start().add(key, value)));
}

我传递 value 一个 HashMap 它会起作用吗?

如果这样会导致性能问题或者不推荐吗?为什么?

The document shows I can use $addToSet to add an element to document when it does not exists.But I am not sure it could use to add Map type to a document.
For Example:

public static void AddToSet(DBCollection collection, Map conditions, String key, Object value) {
    BasicDBObject so = new BasicDBObject();
    so.putAll(conditions);
    collection.update(so, new BasicDBObject("$addToSet", BasicDBObjectBuilder.start().add(key, value)));
}

I deliver value a HashMap will it works?

If so will it lead to performance problem or not recommend?Why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

清引 2025-01-14 05:35:11

如果您只想将该字段/键设置/添加到该值,则不应使用 $addToSet,而只需使用 $set。

这就像您的文档是 Map 并且您想要一个新的键/值一样,只不过它是在服务器上完成的。

If you just want to set/add that field/key to that value you shouldn't use $addToSet but simply $set.

It is the same as if your document was Map and you want to and a new key/value, except it is done on the server.

高跟鞋的旋律 2025-01-14 05:35:11

您将无法使用映射,因为它不是 mongodb 支持的类型。如果你把地图做成一个DBObject,你就可以做这样的操作。

You won't be able to use a map because it isn't a type that mongodb supports. If you made the map into a DBObject, you could do this kind of operation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文