Zählen Sie, wie viele Dokumente enthalten ein Feld

Habe ich diese drei MongoDB Dokumente:

{ 
    "_id" : ObjectId("571094afc2bcfe430ddd0815"), 
    "name" : "Barry", 
    "surname" : "Allen", 
    "address" : [
        {
            "street" : "Red", 
            "number" : NumberInt(66), 
            "city" : "Central City"
        }, 
        {
            "street" : "Yellow", 
            "number" : NumberInt(7), 
            "city" : "Gotham City"
        }
    ]
}

{ 
    "_id" : ObjectId("57109504c2bcfe430ddd0816"), 
    "name" : "Oliver", 
    "surname" : "Queen", 
    "address" : {
        "street" : "Green", 
        "number" : NumberInt(66), 
        "city" : "Star City"
    }
}
{ 
    "_id" : ObjectId("5710953ac2bcfe430ddd0817"), 
    "name" : "Tudof", 
    "surname" : "Unknown", 
    "address" : "homeless"
}

Den address Feld ist ein Array von Objekten in das erste Dokument ein Object im zweiten und eine String im Dritten.
Mein Ziel ist es, herauszufinden, wie viele Dokumente meiner Sammlung containinig Bereich address.street. In diesem Fall die richtige Anzahl ist 1, aber mit meiner Abfrage bekomme ich zwei:

db.coll.find({"address.street":{"$exists":1}}).count()

Ich habe auch versucht, map/reduce. Es funktioniert, aber es ist langsamer, so dass, wenn es möglich wäre, würde ich es vermeiden.

Schreibe einen Kommentar