我想以插入的相反顺序实现一个需要来自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的值,并对其进行排序,以确保我了解我的插入方式。
在我实施之前,我需要确保哪种方式最好。
答案 0 :(得分:1)
Mongodb ObjectIDs存储精确到秒的时间戳信息。 $ natural按此_id排序。如果您的应用要在同一秒内插入文档,则插入顺序将不明确。只有当您的集合有上限时,$ natural才会对应于广告订单。