gpt4 book ai didi

pymongo - 如何在pymongo上查询并以插入的相反顺序获取值

转载 作者:行者123 更新时间:2023-12-02 03:55:39 28 4
gpt4 key购买 nike

我想实现一个函数,该函数需要以与插入相反的顺序从 pymongo 集合中获取值。

我可以想到几个方法:

cursor = collection.find(skip=collection.count()-LIMIT_VAL,limit=LIMIT_VAL)
rows = list(cursor).reverse()

这种方式会有点糟糕,因为 LIMIT_VAL 是一个变量,我不想将整个东西都放入内存中。我不想为 skip 参数提供 -ve 值。

rows = collection.find(sort={'$natural':-1}, limit=LIMIT_VAL)

我读了here你不能真正依赖自然排序顺序。我不知道那怎么可能不可靠

我将一个名为 order_of_insert 的值插入到每条记录中,并对其进行排序以确保我了解我的插入方式。

在我实现这个之前,我需要确定哪种方法是最好的。

最佳答案

Mongodb ObjectID 存储精确到秒的时间戳信息。 $natural 按此 _id 对其进行排序。如果您的应用程序要在同一秒内插入文档,则插入顺序将不明确。仅当您的收藏有上限时,$natural 才会对应于广告订单。

  1. 如果您的应用程序几乎可以容忍准确的插入顺序,并且您需要数据永久保留,请使用 $natural 而不限制集合。
  2. 如果您需要准确的插入顺序并且数据集很小/半持久,请限制集合并使用$自然排序
  3. 否则看起来您需要根据自己的时间戳或其他字段进行排序以跟踪顺序。

关于pymongo - 如何在pymongo上查询并以插入的相反顺序获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801553/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com