MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Potok agregacji Mongodb, jak ograniczyć grupowe push

Załóżmy, że współrzędne w lewym dolnym rogu i w prawym górnym rogu są odpowiednio [0, 0] i [100, 100] . Z MongoDB 3.2 możesz użyć $slice operatora, aby zwrócić podzbiór tablicy, który jest tym, czego chcesz.

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $isNumber

  2. Monitorowanie instancji MongoDB za pomocą usługi monitorowania MongoDB (MMS)

  3. Jak wykonać zapytanie tablicowe identyfikatorów w Mongoose?

  4. Jak sortować w manguście?

  5. Różnica między .save() a użyciem update()