Uwaga: To będzie próbował zapisać cały zestaw wyników w pamięci (od .toArray
). Ostrożnie na dużych zbiorach danych. Nie używaj w produkcji! Odpowiedź Abisheka ma tę zaletę, że działa nad kursorem, zamiast w całej tablicy pamięci.
Jeśli chcesz także _id, spróbuj tego. Podane zbiór nazywany „wnioski”:
// Creates a sorted list, then takes the max
db.requests.find().toArray().map(function(request) { return {size:Object.bsonsize(request), _id:request._id}; }).sort(function(a, b) { return a.size-b.size; }).pop();
// { "size" : 3333, "_id" : "someUniqueIdHere" }
nie wiem co kierowca używasz, ale powinieneś być w stanie zobaczyć [size bson] (https://github.com/mongodb/mongo-c-driver/blob /master/src/bson.h#L141) jakoś. Zrób to i przejrzyj tabelę, aby dowiedzieć się, jaki jest największy dokument. – vinipsmaker
Nie łatwo, nie ma operatora '$ documentSize' w zapytaniu MongoDB, a' $ size' robi coś zupełnie innego. Prawdziwy sposób w większości sterowników po stronie klienta, w tym javascript polega na użyciu pomocnika po stronie klienta. – Sammaye