MongoDB自然排序返回数据与ObjectIDs及时洗牌

时间:2015-06-30 09:54:29

标签: mongodb sorting datetime

我执行以下查询:

BEGIN
   INSERT INTO dd_donor (iddonor)
   VALUES (305)

EXCEPTION
    WHEN DUP_VAL_ON_INDEX THEN
    DBMS_OUTPUT.PUT_LINE('ID already Exists');
END;

这是输出的一部分:

db.preference.find({}, {_id: 1}).sort({$natural: 1}).forEach(function(d) { 
  print(d._id.getTimestamp()) 
})

很容易看出日期严重洗牌,而我预计严格按升序排列。

集合没有上限,文档经常被修改。从不在代码中显式生成ObjectIds。收藏不分享。

为什么自然分类以这种方式运作的任何想法?

有人可以在自然排序工作时解释。

1 个答案:

答案 0 :(得分:2)

你期待什么?

  

使用$ natural运算符对a的结果使用自然顺序   排序操作。自然顺序指的是逻辑顺序   数据库内部的文档。

     

$ natural运算符使用以下语法返回文档   它们存在于磁盘上的顺序:...

请参阅MongoDB documentation