找了很久没找到答案,mongdb高版本的pushall方法已经被废弃了,最后在官方文档看到一个方法
:
现有文档数据
需要向likes中批量添加数据,比如添加一个list
java代码如下,push方法不检查重复的值,效率高
Update update = new Update();
update.push("likes").each(objects);
mongoTemplate.updateFirst(Query.query(Criteria.where("uid").is(uid)), update, "user_like");
如果需要去重可以用addToSet
Update update = new Update();
update.addToSet("likes").each(objects);
mongoTemplate.updateFirst(Query.query(Criteria.where("uid").is(uid)), update, "user_like");
官方文档如下:
// { $push : { "category" : { "$each" : [ "spring" , "data" ] } } }
new Update().push("category").each("spring", "data")
// { $push : { "key" : { "$position" : 0 , "$each" : [ "Arya" , "Arry" , "Weasel" ] } } }
new Update().push("key").atPosition(Position.FIRST).each(Arrays.asList("Arya", "Arry", "Weasel"));
// { $push : { "key" : { "$slice" : 5 , "$each" : [ "Arya" , "Arry" , "Weasel" ] } } }
new Update().push("key").slice(5).each(Arrays.asList("Arya", "Arry", "Weasel"));
// { $addToSet : { "values" : { "$each" : [ "spring" , "data" , "mongodb" ] } } }
new Update().addToSet("values").each("spring", "data", "mongodb");