TODO: randomly selects a record from the database
TODO: randomly selects a record from the database
1. The most direct and rough method is to first calculate the total number of records, then choose a random number n from 0 to the total number of records, and skip n records using skip. This is an inefficient method. The total number of records first will take a lot of time to use skip.
two。 So is there any way to provide efficiency by adding a random factor random of 0-1 to each record?
"random": 0.5127909016609585
If you want to find a random record in a record, just calculate a random number and use it as a query condition.
Result = db.getCollection ('qq') .findOne ({"random": {"$gt": random}})
If the query can not get the data, it is because the random number is larger than the random value stored in the record, so there is no result returned, so you can query the desired data in a different direction.
Result = db.getCollection ('qq') .findOne ({"random": {"$lt": random}})
3. For more complex queries, random factors can be included in the index.
In this way, if we get a record randomly, we can also get n records randomly and use them in the corresponding business environment.
Wxgzh:ludong86