[英]How to add and remove elements in array in Mongo use Java?
So I have object: 所以我有一个对象:
"_id" : 1,
"employee_id" : [2, 3, 4, 5],
"project_name" : "qwerty"
And I want to delete from "employee_id"
array [3, 5]
and add new array [13, 6, 8]
. 我想从
"employee_id"
数组[3, 5]
删除并添加新数组[13, 6, 8]
。 And result will be: 结果将是:
"_id" : 1,
"employee_id" : [2, 4, 13, 6, 8],
"project_name" : "qwerty"
I use this Java-code: 我使用这个Java代码:
DB database = mongoClient.getDB("employee_service");
DBCollection collectionProject = database.getCollection("project");
DBObject query = new BasicDBObject();
query.put("_id", project.getId());
DBObject projectMongoObject = new BasicDBObject();
projectMongoObject.put("project_name", project.getProjectName());
//something
collectionProject.update(query, projectMongoObject);
So how to set in projectMongoObject
new array and delete array? 那么如何在
projectMongoObject
设置新数组并删除数组?
Make use of the $pullAll operator to remove the fields, and the combination of $push and $each to add new fields to the array. 利用$ pullAll运算符删除字段,以及$ push和$ each的组合, 为数组添加新字段。
DBObject query = new BasicDBObject();
query.put("_id", project.getId());
DBObject projectMongoObject = new BasicDBObject();
projectMongoObject.put("$set", new BasicDBObject("project_name",
project.getProjectName()));
projectMongoObject.put("$pullAll",
new BasicDBObject("employee_id", new int[]{3,5}));
collectionProject.update(query, projectMongoObject);
projectMongoObject = new BasicDBObject();
projectMongoObject.put("$push",
new BasicDBObject("employee_id",
new BasicDBObject("$each",
new int[]{13,6,8})));
collectionProject.update(query, projectMongoObject);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.