MongoDB自然排序返回的数据具有在时间上打乱的ObjectID



我执行以下查询:

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

以下是部分输出:

Thu Mar 26 2015 12:39:06 GMT+0100 (CEST)
Thu Mar 26 2015 12:41:07 GMT+0100 (CEST)
Thu Mar 26 2015 12:48:55 GMT+0100 (CEST)
Mon Mar 30 2015 17:08:44 GMT+0200 (CEST)
Tue Mar 31 2015 12:34:36 GMT+0200 (CEST)
Tue Mar 31 2015 12:35:01 GMT+0200 (CEST)
Tue Mar 31 2015 12:34:47 GMT+0200 (CEST)
Thu Nov 20 2014 10:55:07 GMT+0100 (CEST)
Wed Apr 29 2015 10:02:33 GMT+0200 (CEST)
Wed Apr 29 2015 10:02:53 GMT+0200 (CEST)
Wed Apr 29 2015 10:03:13 GMT+0200 (CEST)
Wed Apr 29 2015 10:00:11 GMT+0200 (CEST)
Wed Apr 29 2015 10:18:23 GMT+0200 (CEST)
Mon Feb 23 2015 11:54:11 GMT+0100 (CEST)
Tue May 12 2015 16:40:45 GMT+0200 (CEST)
Fri May 15 2015 17:04:04 GMT+0200 (CEST)
Wed May 14 2014 18:13:40 GMT+0200 (CEST)
Tue Jun 09 2015 14:17:11 GMT+0200 (CEST)
Tue Jun 16 2015 16:03:31 GMT+0200 (CEST)
Tue Nov 04 2014 21:15:21 GMT+0100 (CEST)
Fri Mar 14 2014 10:16:48 GMT+0100 (CEST)
Wed Jun 17 2015 11:14:57 GMT+0200 (CEST)
Fri Mar 14 2014 10:15:30 GMT+0100 (CEST)

很容易看出日期被严重打乱了,而我预计会严格按照升序排列。

收款没有上限,而且文件经常被修改。ObjectId从不在代码中显式生成。集合未共享。

你知道为什么自然排序会这样吗?

有人能解释一下自然排序在.

中起作用吗

你期待什么?

使用$natural运算符对排序操作。自然秩序是指数据库内部的文档。

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

请参阅MongoDB文档。

相关内容

  • 没有找到相关文章

最新更新