我正在使用猫鼬创建新记录。有时,新记录并不位于所有现有文档的末尾,而是位于随机位置的中间。
我想念什么吗?这是插入代码:
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));
});
我也有一条删除路线。为什么有时会在随机位置插入新记录,而有时又在末尾插入新记录?
答案 0 :(得分:2)
您新创建的文档将以默认的内部排序顺序(或natural order)插入,除非您未通过排序,否则mongodb find查询并不总是默认情况下对文档进行排序。它将以自然顺序从存储引擎返回记录
如docs中所述:
结果排序
除非您指定sort()方法或使用$ near运算符, MongoDB不保证查询结果的顺序。
因此,如果要查看/获取按_id / created排序的所有文档,则需要手动将其放入查询中。
db.getCollection('books').find({}).sort({"_id": -1})