sql >> Database >  >> NoSQL >> MongoDB

Mongo werkt alle records bij met een veld dat nul is

Als het naamveld er niet is, probeer dan:

db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})

$set zal een nieuw veld met de opgegeven waarde toevoegen, op voorwaarde dat het nieuwe veld geen typebeperking schendt.

Als het daar is en null, of als er geen waarde is ingesteld:

db.collection.update({"name": null}, {"$set": {"name": "test"}})

U kunt beide zoekopdrachten combineren met $or als

db.collection.update(
    {
        "$or": [
            { "name": { "$exists": false } }, 
            { "name": null }
        ]
    }, 
    { "$set": { "name": "test" } }
)

Gebruik voor MongoDB 3.2 en hoger updateMany() die meerdere documenten binnen de collectie bijwerkt op basis van het filter:

db.collection.updateMany(
    {
        "$or": [
            { "name": { "$exists": false } }, 
            { "name": null }
        ]
    }, 
    { "$set": { "name": "test" } }
)


  1. Hoe gegevens van mongodb te krijgen tussen het opnemen van twee dagen in mongodb met behulp van mongoose

  2. Verander variabele waarde in document na enige tijd verstrijkt?

  3. Hoe diep geneste reeks id's te vullen na geaggregeerde zoekopdracht in mongodb?

  4. MongoDB aggregatie/groep/som-query vertaald naar pymongo-query