Java 删除mongodb中的特定嵌入对象
这是我的java程序:Java 删除mongodb中的特定嵌入对象,java,mongodb,Java,Mongodb,这是我的java程序: try { MongoClient mongoClient = null; mongoClient = new MongoClient( "localhost" , 27017); DB db = mongoClient.getDB("SchoolProject"); boolean auth = db.authenticate("root", "root@123".toCharArray()); System.out.printl
try {
MongoClient mongoClient = null;
mongoClient = new MongoClient( "localhost" , 27017);
DB db = mongoClient.getDB("SchoolProject");
boolean auth = db.authenticate("root", "root@123".toCharArray());
System.out.println(auth);
if(auth==true){
DBCollection table = db.getCollection("Bus_route");
BasicDBObject query = new BasicDBObject();
query.put("BusId", "BUS_101");
BasicDBObject data = new BasicDBObject();
data.put("Route.$.stop_name", "hyderabad");
data.put("Route.$.arrival_time", "1:05");
BasicDBObject command = new BasicDBObject();
command.put("$unset", data);
table.update(query, command);
}
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
和mongodb文件:
"BusId" : "BUS_101",
"DriverName" : "Alex",
"Route" : [
{
"stop_name" : "st. John Road",
"arrival_time" : "10:30"
},
{
"stop_name" : "hyderabad",
"arrival_time" : "1:05"
}
],
"SchoolName" : "St. John Paul",
"VehicleNo" : "A20y6757",
"_id" : ObjectId("529f093cdaa62b1b10b82cc1")
及
文件名称:巴士路线
删除mongodb中的特定嵌入对象
如何在不删除其他对象的情况下删除数组路由中名为hyderabad的对象
在我从这个论坛得到帮助后,我得到了它,下面是代码
DBCollection table = db.getCollection("Bus_route");
BasicDBObject query = new BasicDBObject();
query.put("BusId", "BUS_101");
BasicDBObject data = new BasicDBObject();
data.put("stop_name", "hyderabad");
BasicDBObject command = new BasicDBObject();
command.put("$pull", new BasicDBObject("Route", data));
table.update(query, command);
您必须使用$pull操作符()进行更新我使用了$pull投影而不是$unset,但是我得到了错误,因为如果没有包含array.db.Bus_route.update的相应查询字段,就无法应用位置操作符({BusId:'Bus_101},{$pull:{'route':{'stop_name':'hydrabad'})