gpt4 book ai didi

Java:如何将 HashMap 插入 MongoDB?

转载 作者:可可西里 更新时间:2023-11-01 10:39:30 27 4
gpt4 key购买 nike

我有一个 HashMap ,我正试图将其插入到 MongoDB(3.6 版)中。我知道 insertMany() 方法——它只接受文档列表。我无法创建列表,因为我的数据中有重复项并且我想删除它们。这就是我创建 HashMap 的原因。有什么办法可以将散列图插入 Mongodb 中吗?我找到一个链接 https://www.mkyong.com/mongodb/java-mongodb-insert-a-document/这显示了如何将 map 插入 Mongodb

collection.insert(new BasicDBObject(documentMap));

但是 BasicDBObject 在新的 mongoDB 中被弃用了。我的 HashMap 如下所示:

-1322771423 [ecn, KeywordMatch, http://insidedell.com/ecn, ECN]
-2144339676 [product marketing, PhraseMatch, http://dellemc.com/product, Products]
-214203024 [jive, ExactMatch, http://test.com/jive, Jive test]
-493382214 [search, ExactMatch, http://example.com, Search Consultancy]

基本上我希望我的 MongoDB 集合看起来像这样:

new_collection
{
_id: -493382214
query: ExactMatch,
link: http://example.com,
content: Search Consultancy
}
{
_id:
...
}

编辑:我的问题背景:我正在尝试将 CSV 文件插入 MongoDB。我的 CSV 文件有重复的行(相同的行)。这就是为什么我必须将它们转换成散列图而不是将它们存储在 arrayList(Document) 中。我知道我们可以使用 insertMany(List(Document)) 插入到 Mongodb 中,但我需要避免这些重复项。

感谢任何帮助。

最佳答案

使用 for 循环映射 _id 和值并将所有值收集到文档列表中。

有点像

Map<String, List<String>> inMap =  new HashMap<>();
List<Document> documents = new ArrayList<>();
for(Map.Entry<String, List<String>> kv :inMap.entrySet()) {
Document doc = new Document();
doc.put("_id", kv.getKey());
List<String> values = kv.getValue();
doc.put("query", values.get(0));
... rest of values
documents.add(doc);
}
collection.insertMany(documents);

关于Java:如何将 HashMap 插入 MongoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49139226/

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