Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mongoDB:删除对象数组中的空对象_Javascript_Mongodb - Fatal编程技术网

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

Javascript mongoDB:删除对象数组中的空对象,javascript,mongodb,Javascript,Mongodb,不幸的是,我在一些文档的数组中得到了一些虚假对象,其结构如下: { "_id" : "8vJY4baMbdYkgHian", "title" : "Cars", "tradename" : [ { }, { "element" : "Audi" }, { "element" : "Mercedes" } ] } 如本例

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

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

        },
        {
            "element" : "Audi"
        },
        {
            "element" : "Mercedes"
        }
    ]
}
如本例所示,数组中的第一个对象为空。如何删除集合中所有文档的所有
tradename
-数组中的空对象

Collection.update(
    { 'tradename': {} },
    { $pull: { 'tradename.$': '' } }
);

以下使用的更新操作将更新集合中的所有文档,以从数组
商品名
中删除空对象,前提是嵌入的文档仅具有
元素
属性:

db.collection.update(
    { },
    { "$pull": { "tradename": { "element": { "$exists": false } } } },
    { "multi": true }
)

从阵列中移除空对象的另一种方法,无需任何假设:

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

如果该对象没有“元素”,则可能重复此my remove元素property@Azzi这就是为什么我明确指出嵌入式文档只有元素属性