gpt4 book ai didi

java - 在 mongodb 中保存对象列表

转载 作者:行者123 更新时间:2023-12-01 15:00:12 25 4
gpt4 key购买 nike

我有汽车列表 { car​​1, car2, car3 } 并且每辆车至少有两个或更多字段。该列表将转换为 BasicDBList。 Example here

DBObject saveObject = new BasicDBObject().append("$push", dbBasicListOfCars);
collection.(car).save(saveObject);

它无法将列表保存在自己的集合中,并提示该字段不能以“$”符号开头。

如何将整个列表推送到集合中?或者我必须保存单独的汽车来 Collection 吗?

最佳答案

new BasicDBObject().append("$push", dbBasicListOfCars);

在上面的语句中,您尝试在 DBObject 中插入键值对,键为 "$push",值为 dbBasicListOfCars。MongoDB 不允许键有“$”,因此失败。

但是,您尝试保存的方式也是错误的。

您需要的是 com.mongodb.BasicDBList,它是一个允许创建数组 DBObject 的实用程序类。BasicDBList 仅支持数字键。传递无法转换为整数的字符串将导致 IllegalArgumentException。

 BasicDBList list = new BasicDBList();
list.put("1", "bar"); // ok
list.put("1E1", "bar"); // throws exception

引用:http://api.mongodb.org/java/current/com/mongodb/BasicDBList.html

注意:MongoDB 还将从 java.util.Lists 创建数组。

DBObject obj = new BasicDBList();
obj.put( "0", value1 );
obj.put( "4", value2 );
obj.put( 2, value3 );

通过创建 DBObject { "0": value1, "1": null, "2": value3, "3": null, "4"来模拟数组 [ value1, null, value3, null, value2 ] :值2}。

关于java - 在 mongodb 中保存对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13773666/

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