mongoDB:删除对象数组中的空对象

use*_*695 4 javascript mongodb

不幸的是,我在某些文档的数组中得到了一些虚假对象,它们的结构如下:

{
    "_id" : "8vJY4baMbdYkgHian",
    "title" : "Cars",
    "tradename" : [
        {

        },
        {
            "element" : "Audi"
        },
        {
            "element" : "Mercedes"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

正如你在这个例子中看到的,数组中的第一个对象是空的。如何删除集合中tradename所有文档的所有数组中的空对象?

Collection.update(
    { 'tradename': {} },
    { $pull: { 'tradename.$': '' } }
);
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 5

从没有假设的数组中删除空对象的另一种方法:

db.a.update(
    {"tradename": {}},
    { $pull: { 'tradename': {$in:[{}]} } },
    { "multi": true }
);
Run Code Online (Sandbox Code Playgroud)