MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

come cercare in una raccolta mongodb le chiavi del dizionario nidificate nell'array

Puoi usare la notazione punto nelle chiavi di query per farlo, usando il $exists operatore solo per verificare l'esistenza:

db.test.find({'files.IyzkmGh4YGD61Tc3TJjaEY17hDldH': {'$exists': 1}})

Per trovare tutti i documenti che contengono quei file e rimuoverli:

db.test.update(
    {'files.IyzkmGh4YGD61Tc3TJjaEY17hDldH': {'$exists': 1}},
    {'$pull': {'files': {'IyzkmGh4YGD61Tc3TJjaEY17hDldH': {'$exists': 1}}}},
    multi=True)