Mongo DB-新创建的文档未按顺序插入

时间:2020-05-05 04:36:44

标签: javascript node.js reactjs mongodb express

我正在使用猫鼬创建新记录。有时,新记录并不位于所有现有文档的末尾,而是位于随机位置的中间。

我想念什么吗?这是插入代码:

      app.post("/api/books", (req, res) => {
         console.log("POST ROUTE HIT!");
         console.log(req.body);
         db.Book
           .create(req.body)
           .then(dbModel => res.json(dbModel))
           .catch(err => res.status(422).json(err));
      });

我也有一条删除路线。为什么有时会在随机位置插入新记录,而有时又在末尾插入新记录?

1 个答案:

答案 0 :(得分:2)

您新创建的文档将以默认的内部排序顺序(或natural order)插入,除非您未通过排序,否则mongodb find查询并不总是默认情况下对文档进行排序。它将以自然顺序从存储引擎返回记录

docs中所述:

结果排序

除非您指定sort()方法或使用$ near运算符, MongoDB不保证查询结果的顺序。

因此,如果要查看/获取按_id / created排序的所有文档,则需要手动将其放入查询中。

db.getCollection('books').find({}).sort({"_id": -1})
相关问题