MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mongodb:Truy vấn một đối tượng json được lồng trong một mảng

Sử dụng toán tử vị trí

db.test.find(
    { "array.value": "value2" },
    { "array.$": 1, _id : 0 }
)

Đầu ra

{ "array" : [ { "name" : "test2", "value" : "value2" } ] }

Sử dụng tổng hợp

db.test.aggregate([
    { $unwind : "$array"},
    { $match : {"array.value" : "value2"}},
    { $project : { _id : 0, array : 1}}
])

đầu ra

{ "array" : { "name" : "test2", "value" : "value2" } }

Sử dụng trình điều khiển Java

    MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
    DB db = mongoClient.getDB("mydb");
    DBCollection collection = db.getCollection("test");

    DBObject unwind = new BasicDBObject("$unwind", "$array");
    DBObject match = new BasicDBObject("$match", new BasicDBObject(
            "array.value", "value2"));
    DBObject project = new BasicDBObject("$project", new BasicDBObject(
            "_id", 0).append("array", 1));

    List<DBObject> pipeline = Arrays.asList(unwind, match, project);
    AggregationOutput output = collection.aggregate(pipeline);

    Iterable<DBObject> results = output.results();

    for (DBObject result : results) {
        System.out.println(result.get("array"));
    }

đầu ra

{ "name" : "test2" , "value" : "value2"}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ inc

  2. Truy vấn dữ liệu từ MongoDB bằng GraphQL trong Django:Get-Go (1)

  3. Cách tối ưu hóa hiệu suất của ClusterControl và các thành phần của nó

  4. Đẩy đến hai mảng riêng biệt trong một lệnh gọi cập nhật trong mongodb

  5. Cách mới để quản lý cơ sở dữ liệu nguồn mở