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

Javascript Mongo DB-未按顺序插入新创建的文档,javascript,node.js,reactjs,mongodb,express,Javascript,Node.js,Reactjs,Mongodb,Express,我正在使用猫鼬创建一个新记录。有时,新的记录不在所有现有文档的末尾,而是在一个随机的位置中间。p> 我错过什么了吗?这是插入代码: app.post("/api/books", (req, res) => { console.log("POST ROUTE HIT!"); console.log(req.body); db.Book .create(req.body) .then(

我正在使用猫鼬创建一个新记录。有时,新的记录不在所有现有文档的末尾,而是在一个随机的位置中间。p> 我错过什么了吗?这是插入代码:

      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));
      });

我也有一个删除路线。为什么我的新记录有时会随机插入,而有时会在最后插入?

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

如中所述:

结果排序

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

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

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

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

如中所述:

结果排序

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

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

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

你是怎么知道这些记录是按随机顺序插入的?从你的应用程序?您的应用程序是否根据排序顺序显示记录?您如何看到您的记录被放置在末尾或任意位置?我认为这是您获取记录时的排序问题。你得按时间来排序。所以,你可以从最新到最新或从旧到最新。我可以使用ROBO3T在数据库中看到它。这就是我的应用程序呈现它们的方式。我还没有按顺序分类。我希望新添加的文档会在末尾插入,就像在SQL中一样?它可能会按照您的意愿在末尾插入,但您必须按排序顺序获得它。如果你不排序,它就会随机返回。你怎么知道这些记录是按随机顺序插入的?从你的应用程序?您的应用程序是否根据排序顺序显示记录?您如何看到您的记录被放置在末尾或任意位置?我认为这是您获取记录时的排序问题。你得按时间来排序。所以,你可以从最新到最新或从旧到最新。我可以使用ROBO3T在数据库中看到它。这就是我的应用程序呈现它们的方式。我还没有按顺序分类。我希望新添加的文档会在末尾插入,就像在SQL中一样?它可能会按照您的意愿在末尾插入,但您必须按排序顺序获得它。如果不进行排序,它将以随机方式返回。