2011-09-29 40 views
7

Tôi chỉ tự hỏi liệu điều này có thể thực hiện trong một yêu cầu không?Mongodb đối tượng trống trong tài liệu lồng nhau

Given

{ 
    _id: 1, 
    foo: { 
    fred: {},   // <- I want to remove empty keys like this 
    barney: { bar: 1 } // <- But keep these keys 
    } 
} 

Dự kiến ​​

{ 
    _id: 1, 
    foo: { 
    barney: { bar: 1 } 
    } 
} 

tôi biết làm thế nào để làm điều đó trong một số yêu cầu, nhưng tôi đang cố gắng để hiểu MongoDB tốt hơn.


Lưu ý.fred sẽ trống trong lệnh cập nhật như { $unset: { "fred.baz": 1 } } khi baz là khóa cuối cùng trong fred.

Có thể xóa nội dung đó bằng nội dung của nó? Nhưng người gửi lệnh không biết, có bất kỳ khóa nào khác, ngoại trừ baz vào lúc này không.

Trả lời

8

Bạn có thể tìm kiếm tài liệu rỗng nhúng ({ }) và $unset họ .. đây là một ví dụ trong vỏ JS:

db.mycoll.update(
    {'foo.fred':{ }}, 
    { $unset: {'foo.fred':1} }, 
    false, // upsert: no 
    true // multi: find all matches 
) 
Các vấn đề liên quan