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

Làm cách nào để trả về phần tử mà tôi đang tìm kiếm bên trong một mảng lồng nhau?

Sử dụng phương thức shell findAndModify phù hợp với nhu cầu của bạn.

Nhưng bạn không thể sử dụng ký tự vị trí $ nhiều lần trong khi chiếu trong MongoDb, vì vậy bạn có thể phải tự theo dõi nó ở phía máy khách.

Sử dụng arrayFilters để cập nhật tài liệu con lồng nhau sâu, thay vì vị trí tất cả toán tử $[] .

Dưới đây là một truy vấn đang hoạt động -

var query = {
    universe: 'comics'
};

var update = {
    $set: {
        'saga.$[outer].characters.$[inner].character': 'lobezno',
        'saga.$[outer].characters.$[inner].picture': '618035022354.png',
    }
};

var fields = {
    'saga.characters': 1
};

var updateFilter = {
    arrayFilters: [
        {
            'outer.name': 'x-men'
        },
        {
            'inner.character': 'wolverine'
        }
    ]
};

db.collection.findAndModify({
    query,
    update,
    fields,
    arrayFilters: updateFilter.arrayFilters
    new: true
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cài đặt MongoDB trên Ubuntu 16.04

  2. MongoError:không kết nối được với máy chủ trong lần kết nối đầu tiên

  3. Làm thế nào để tìm vào mongodb đến mục cuối cùng của một mảng?

  4. Làm cách nào để xóa các trường không dùng nữa trong Mongo?

  5. Nhận tập hợp con mảng trong mongodb bằng cách sử dụng nguồn mảng