gpt4 book ai didi

java - 在 MongoDB 中插入完整列表

转载 作者:行者123 更新时间:2023-11-30 04:34:46 27 4
gpt4 key购买 nike

我有复杂对象的List,并且该复杂对象包含两个以上的字段。类似于 - {car1, car2, car3} 并且汽车具有名称和类型字段

有没有更简单的方法来插入汽车列表?类似的东西

DBObject updateObject = new BasicDBObject().append("$push", new BasicDBObject().append("cars", cars)

我尝试使用$pushAll,但它似乎不起作用。我做了更多研究,发现它需要有关映射的信息,这就是此插入失败的原因之一。

插入 MongoDB 的最佳方法是什么?一些示例代码或方向会有所帮助。请注意,这必须通过 Java 完成。

最佳答案

好吧,如果您不想手动将汽车对象转换为 DBObject,可以使用映射框架。像Morphia .

就我个人而言,我只是手动连接映射方法。代码可能如下所示(未经测试,预计会有拼写错误)

BasicDBObject updateObject = new BasicDBObject();
BasicDBList dbCarList = mapCars(cars);
updateObject.append("$push", new BasicDBObject("cars", dbCarList));

...
private BasicDBList mapCars(List<Car> cars) {
BasicDBList result = new BasicDBList();
for (Car car: cars) {
BasicDBObject dbCar = new BasicDBObject();
dbCar.append("name", car.getName());
result.add(dbCar);
}

return result;
}

更新:正如 Sammaye 在评论中指出的那样,用 $set 替换 $push 来替换列表。 $push 会将不存在的元素追加到数组中,而不删除之前存在的元素。

关于java - 在 MongoDB 中插入完整列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759913/

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