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

Losowy rekord z MongoDB

Począwszy od wydania 3.2 MongoDB, możesz pobrać N losowych dokumentów z kolekcji za pomocą $sample operator potoku agregacji:

// Get one random document from the mycoll collection.
db.mycoll.aggregate([{ $sample: { size: 1 } }])

Jeśli chcesz wybrać losowy dokument(y) z filtrowanego podzbioru kolekcji, dołącz $match etap do rurociągu:

// Get one random document matching {a: 10} from the mycoll collection.
db.mycoll.aggregate([
    { $match: { a: 10 } },
    { $sample: { size: 1 } }
])

Jak zauważono w komentarzach, kiedy size jest większa niż 1, w zwróconej próbce dokumentu mogą występować duplikaty.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. pobieranie atrybutów schematu z modelu Mongoose

  2. MongoDB z redis

  3. MongoDB — Zapytanie o ostatni element tablicy?

  4. $projekt w $lookup mongodb

  5. czy istnieje sposób na automatyczne wygenerowanie ObjectId, gdy model mangusty jest nowy?