sql >> Database >  >> NoSQL >> MongoDB

Mongodb-aggregatiepijplijn hoe een groepspush te beperken

Stel dat de coördinaten linksonder en de coördinaten rechtsboven respectievelijk [0, 0] . zijn en [100, 100] . Vanaf MongoDB 3.2 kunt u de $slice . gebruiken operator om een ​​subset van een array terug te geven die is wat je wilt.

db.collection.aggregate([
    { "$match": { 
        "loc": { 
            "$geoWithin":  { 
                "$box": [ 
                    [0, 0], 
                    [100, 100]
                ]
            }
        }}
    }},
    { "$group": { 
        "_id": "$name",
        "submitted": { "$max": "$submitted" }, 
        "preview": { "$first": "$preview" }
        "locs": { "$push": "$loc" }
    }}, 
    { "$project": { 
        "locs": { "$slice": [ "$locs", 5 ] },
        "preview": 1,
        "submitted": 1
    }},
    { "$limit": 10 }
])


  1. wat zijn pagecache, dentries, inodes?

  2. Hoe u het beste een RESTful API kunt maken in Node.js

  3. Dwingt het toepassen van een 2dsphere-index op een mangoestschema dat het locatieveld verplicht is?

  4. Mongodb-query met velden in dezelfde documenten