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

Xóa tài liệu lồng nhau với điều kiện trong MongoDB

Vấn đề là mảng các tài liệu con không phải là một tập hợp, bạn không thể sắp xếp hoặc làm điều gì đó khác trên đó. Nhưng nếu bạn có quyền truy cập vào bất kỳ giao diện ngôn ngữ nào như JavaScript hoặc các giao diện khác thì có thể. Bạn chỉ cần trích xuất danh sách các tài liệu con, sắp xếp chúng theo chiều cao, ghi nhớ cái đầu tiên và sau đó chạy lệnh để kéo nó khỏi mảng dựa trên tên và chiều cao của nó. vỏ:

var min = 0; var name = "";
db.animals.find({ query:{"_id" : 0} }).forEach(
function(record){
    var sets = record.pets; 
    min = sets[0].height;
    sets.forEach(function(set){
        if(set.height <= min) 
            {min=set.height;
            name=set.name;}
            });
    print(min);
    print(name);    
    query = {"_id": 0}
    update = { "$pull" : { "pets" : { "name" : name } } };
    db.animals.update(query, update);
    })

Tôi nghi ngờ giải pháp này không phải là giải pháp tốt nhất nhưng dù sao thì nó vẫn hoạt động.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy vấn về giá trị mảng cuối cùng

  2. Mongodb chèn tài liệu không có trường _id

  3. Đối tượng cập nhật MongoDb trong một mảng vào lần xuất hiện đầu tiên từ cuối cùng

  4. Tôi có nên lưu trữ mã thông báo JWT trong redis không?

  5. cài đặt trình điều khiển java MongoDB