如何在猫鼬中获取最新插入的记录ID

How to get lastest inserted record _id in mongoose

我正在尝试获取最近插入的记录 _id 和 p_id,但我不知道如何获取 value.Below,因为我的 code.This 不是 working.How 要做的是吗?

数据库记录:

{
_id:5eba58f0e5def333ad4d8c8d,
p_id:"C1",
product_name:"Name",
product_weight:123
},
{
_id:5eba58f0e5def333ad4d8c8e,
p_id:"C2",
product_name:"Name",
product_weight:123
},
{
_id:5eba58f0e5def333ad4d8c8f,
p_id:"C3",
product_name:"Name",
product_weight:123
}

data.controller.js:

var Product = mongoose.model(collectionName);

 let latest_id = Product.findOne().sort({ field: 'asc', _id: -1 }).limit(1);

 console.log("_id" + val);  //output should be 3 

 let latest_p_id = Product.findOne().sort({ field: 'asc', p_id: -1 }).limit(1);

 console.log("p_id" + val);  //output should be C3
  1. MongoDB 本身不支持增量自动生成的数字,所以你的第一种情况,如果你不单独管理你的计数器是不可能的。您可以计算文档的数量,但不会计算已删除的文档。
  2. 第二种情况,你差不多明白了:

和async/await

const product = await Product.findOne().sort({ p_id: -1 }).limit(1)
console.log(product.p_id) // this will be your desired output

没有async/await

Product.findOne().sort({ p_id: -1 }).limit(1).then((product) => {
  console.log(product.p_id) // this will be your desired output
})