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

时间:2020-05-16 16:30:54

标签: node.js mongoose mongoose-web-server

我正在尝试获取最近插入的记录_id和p_id,但是我不知道如何获取该值。在给出我的代码的情况下。这不起作用。该怎么办?

数据库记录:

{
_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 个答案:

答案 0 :(得分:1)

  1. MongoDB本身不支持增量自动生成的数字,因此,在第一种情况下,如果不单独管理计数器是不可能的。您可以计算文档数,但不会考虑已删除文档的数量。
  2. 对于第二种情况,您几乎明白了:

使用异步/等待

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

没有异步/等待

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