How do I add and remove elements in an array in Mongo using Java?
So, I have an object:
"_id" : 1,
"employee_id" : [2, 3, 4, 5],
"project_name" : "qwerty"
And I want to remove from "employee_id"
array [3, 5]
and add a new array [13, 6, 8]
. And the result will be:
"_id" : 1,
"employee_id" : [2, 4, 13, 6, 8],
"project_name" : "qwerty"
I am using this Java code:
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 to a projectMongoObject
new array and delete an array?
+3
source to share
1 answer
Use $ pullAll to remove fields, and a combination of $ push and $ each to add new fields to the array.
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);
+2
source to share