使用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代码段。让我看看能不能帮你。