MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Enregistrement aléatoire de MongoDB

À partir de la version 3.2 de MongoDB, vous pouvez obtenir N documents aléatoires à partir d'une collection en utilisant le $sample opérateur de pipeline d'agrégation :

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

Si vous souhaitez sélectionner le(s) document(s) aléatoire(s) à partir d'un sous-ensemble filtré de la collection, ajoutez un $match étape vers le pipeline :

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

Comme indiqué dans les commentaires, lorsque size est supérieur à 1, il peut y avoir des doublons dans l'échantillon de document renvoyé.