使用Java修改MongoDB数组
我不熟悉使用Java修改MongoDB数组,java,mongodb,Java,Mongodb,我不熟悉MongoDB,我想从数组结构中删除一个元素,如下所示: { "Data" : [ { "url" : "www.adf.com" "type":7 }, { "url" : "www.pqr.com" "type":2 } { "url
MongoDB
,我想从数组结构中删除一个元素,如下所示:
{
"Data" : [
{
"url" : "www.adf.com"
"type":7
},
{
"url" : "www.pqr.com"
"type":2
}
{
"url" : "www.adf.com"
"type":3
},
{
"url" : "www.pqr.com"
"type":5
}
],
}
我想删除url=www.adf.com,该url=www.adf.com的类型为最低值,即在本文档中,我的查询应删除类型=3并返回文档,如下所示:
{
"Data" : [
{
"url" : "www.adf.com"
"type":7
},
{
"url" : "www.pqr.com"
"type":2
}
{
"url" : "www.pqr.com"
"type":5
}
],
}
将$all与$elemMatch一起使用 如果字段包含文档数组,则可以将$all与$elemMatch运算符一起使用
db.inventory.find( {
Data: { $all: [
{ "$elemMatch" : { url : "www.pqr.com": "M", type: { $lte: 50} } },
] }
} )
将$all与$elemMatch一起使用 如果字段包含文档数组,则可以将$all与$elemMatch运算符一起使用
db.inventory.find( {
Data: { $all: [
{ "$elemMatch" : { url : "www.pqr.com": "M", type: { $lte: 50} } },
] }
} )
@shakthydoss显示的查询可以用java描述如下:
MongoClient mongoClient = new MongoClient("SERVER", 27017);
DB db = mongoClient.getDB("DB_NAME");
DBCollection coll1 = db.getCollection("COLLECTION_NAME");
DBObject eleMatch = new BasicDBObject();
eleMatch.put("url", "www.pqr.com");
eleMatch.put("type", new BasicDBObject("$lte", 50));
BasicDBObject up = new BasicDBObject();
up.put("$elemMatch", eleMatch);
BasicDBList basicDBList = new BasicDBList();
basicDBList.add(up);
DBObject query = new BasicDBObject("Data", new BasicDBObject(" $all", basicDBList));
coll1.find(query);
@shakthydoss显示的查询可以用java描述如下:
MongoClient mongoClient = new MongoClient("SERVER", 27017);
DB db = mongoClient.getDB("DB_NAME");
DBCollection coll1 = db.getCollection("COLLECTION_NAME");
DBObject eleMatch = new BasicDBObject();
eleMatch.put("url", "www.pqr.com");
eleMatch.put("type", new BasicDBObject("$lte", 50));
BasicDBObject up = new BasicDBObject();
up.put("$elemMatch", eleMatch);
BasicDBList basicDBList = new BasicDBList();
basicDBList.add(up);
DBObject query = new BasicDBObject("Data", new BasicDBObject(" $all", basicDBList));
coll1.find(query);
如果您不知道要比较的值($lte:50),请使用map reduce方法查找数组元素。可以通过您迄今为止尝试过的java代码段。让我看看是否可以帮助您。我需要java而不是mongo Shell。如果您不知道要比较的值($lte:50),请使用map-reduce方法查找数组元素。可以通过您迄今为止尝试过的java代码段。让我看看能不能帮你。