Open2

【Python】MongoDBの操作方法

yuk6rayuk6ra

ドキュメントからランダムでデータを抽出する

ランダムが指定された場合に、任意のフィルターにマッチしたデータをランダムで100件抽出する。

random.py
if is_random:
    random_filter= [    
        {'$match': query_filter},
        {'$sample': {'size': 100}}
    ]

    data = await collection.aggregate(random_filter).to_list(length=None)
else:
    sort_filter = [
        (f"some_data", pymongo.DESCENDING)
    ]

    data = await collection.find(query_filter).sort(sort_filter).to_list(length=None)

参考文献

https://www.mongodb.com/docs/manual/reference/operator/aggregation/sample/