Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delete Empty Documents in MongoDB

I want to delete empty Documents in MongoDB. How should the query for MongoDB must look like. I only want to filter out the Documents where not every field is null. I only want to delete those one who has all fields equal Null

Case:

/* 1 */
{
    "_id" : ObjectId("57601e880855160fbb496f50"),
    "instemail" : [],
    "instProjekt1name" : [],
    "inststrasse" : [],
    "institutionID" : [],
    "insttelefax" : [],
    "insttelefon" : [],
    "institutionsname" : [],
    "instplz" : [],
    "insturl" : [],
    "instLand" : []
}

/* 2 */
{
    "_id" : ObjectId("57601e880855160fbb496f51"),
    "instemail" : [],
    "instProjekt1name" : [],
    "inststrasse" : [],
    "institutionID" : [],
    "insttelefax" : [],
    "insttelefon" : [],
    "institutionsname" : [],
    "instplz" : [],
    "insturl" : [],
    "instLand" : []
}

/* 3 */
{
    "_id" : ObjectId("57601e880855160fbb496f52"),
    "instemail" : [ 
        "[email protected]"
    ],
    "instProjekt1name" : [ 
        "\n\t                                    ERA-Chemistry: Novel Pt-poor catalysts for the electrocatalytic O2 reduction based on modified, nanostructured metal oxides\n\t                                    ", 
        "\n\t                                    \"Welten\" von Mittelschichtangehörigen in zwei Satellitenstädten JABOTABEKs (Indonesien)\n\t                                    ", 
        "\n\t                                    Rätselspiele. Edition und Kommentar\n\t                                    ", 
        "\n\t                                    Analysis of the function of Presenilin in Development and Neurodegeneration in Drosophila melanogaster\n\t                                    ", 
        "\n\t                                    Estimating selection parameters and identifying loci under recent selection based on genome-wide sequence data\n\t                                    ", 
        "\n\t                                    Untersuchung polymerischer Stabilsation in kolloidalen Systemen unter Verwendung neuartiger feldtheoretischer Simulationen\n\t                                    ", 
        "\n\t                                    Entwicklung hämatopoietischer Stammzellen aus humanen ES- und iPS-Zellen\n\t                                    ", 
        "\n\t                                    Untersuchung polymerischer Stabilisation in kolloidalen Systemen unter Verwendung neuartiger feldtheoretischer Simulationen\n\t                                    "
    ],
    "inststrasse" : [ 
        "\r\n\t        \t            \t                Kennedyallee", 
        "40"
    ],
    "institutionID" : [ 
        "5000"
    ],
    "insttelefax" : [ 
        "+49 228 8852777"
    ],
    "insttelefon" : [ 
        "+49 228 8851"
    ],
    "institutionsname" : [ 
        "Deutsche Forschungsgemeinschaft"
    ],
    "instplz" : [ 
        "53175", 
        "Bonn"
    ],
    "insturl" : [ 
        "http://www.dfg.de"
    ],
    "instLand" : [ 
        "\r\n\t            \t            Deutschland\r\n\t        \t        "
    ]
}

Expected:

/* 3 */
{
    "_id" : ObjectId("57601e880855160fbb496f52"),
    "instemail" : [ 
        "[email protected]"
    ],
    "instProjekt1name" : [ 
        "\n\t                                    ERA-Chemistry: Novel Pt-poor catalysts for the electrocatalytic O2 reduction based on modified, nanostructured metal oxides\n\t                                    ", 
        "\n\t                                    \"Welten\" von Mittelschichtangehörigen in zwei Satellitenstädten JABOTABEKs (Indonesien)\n\t                                    ", 
        "\n\t                                    Rätselspiele. Edition und Kommentar\n\t                                    ", 
        "\n\t                                    Analysis of the function of Presenilin in Development and Neurodegeneration in Drosophila melanogaster\n\t                                    ", 
        "\n\t                                    Estimating selection parameters and identifying loci under recent selection based on genome-wide sequence data\n\t                                    ", 
        "\n\t                                    Untersuchung polymerischer Stabilsation in kolloidalen Systemen unter Verwendung neuartiger feldtheoretischer Simulationen\n\t                                    ", 
        "\n\t                                    Entwicklung hämatopoietischer Stammzellen aus humanen ES- und iPS-Zellen\n\t                                    ", 
        "\n\t                                    Untersuchung polymerischer Stabilisation in kolloidalen Systemen unter Verwendung neuartiger feldtheoretischer Simulationen\n\t                                    "
    ],
    "inststrasse" : [ 
        "\r\n\t        \t            \t                Kennedyallee", 
        "40"
    ],
    "institutionID" : [ 
        "5000"
    ],
    "insttelefax" : [ 
        "+49 228 8852777"
    ],
    "insttelefon" : [ 
        "+49 228 8851"
    ],
    "institutionsname" : [ 
        "Deutsche Forschungsgemeinschaft"
    ],
    "instplz" : [ 
        "53175", 
        "Bonn"
    ],
    "insturl" : [ 
        "http://www.dfg.de"
    ],
    "instLand" : [ 
        "\r\n\t            \t            Deutschland\r\n\t        \t        "
    ]
}

How must the statement look like? Can anyone help me?

like image 345
user3786117 Avatar asked Apr 24 '26 05:04

user3786117


1 Answers

I think you should have scheduler and query with $exists on your fields that are exist=false.

db.collection.find({ field1: { $exists: false},field2: { $exists: false}...})

https://docs.mongodb.com/manual/reference/operator/query/exists/

Or with the help of $in

{$in: [ [{}], [{}, {}] ] }

https://docs.mongodb.com/manual/reference/operator/query/in/

And take a look at this link

like image 157
Hamedz Avatar answered May 02 '26 05:05

Hamedz



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!