Get the App
SLTechnology News&Howtos  ›  Database  › 

TODO: randomly selects a record from the database

Shulou Source: shulou.com Published: 2022-06-01 12:16:36 10月04日 Update

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

Tags: Query data total method random number factor efficiency database extraction low complex rough business between method that is direction more condition environment Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Docker OPPO Reno MariaDB vpn NVidia