MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Registro aleatório do MongoDB


A partir da versão 3.2 do MongoDB, você pode obter N documentos aleatórios de uma coleção usando o $sample operador de pipeline de agregação:
// Get one random document from the mycoll collection.
db.mycoll.aggregate([{ $sample: { size: 1 } }])

Se você deseja selecionar os documentos aleatórios de um subconjunto filtrado da coleção, adicione um $match antes estágio para o pipeline:
// Get one random document matching {a: 10} from the mycoll collection.
db.mycoll.aggregate([
    { $match: { a: 10 } },
    { $sample: { size: 1 } }
])

Conforme observado nos comentários, quando size for maior que 1, pode haver duplicatas na amostra do documento retornado.