如何查找符合特定条件的记录的最近记录

how to find recent record of record matching particular criteria

    {
"_id" : ObjectId("5514ecc73910d3e808b9417c"),
"endingReciptBookNumber" : 2999,
"startingReciptBookNumber" : 2900,
"User" : 8,
"allRecipt" : [ 
    {
        "recipt_Number" : 2999,
        "amount" : 24124,
        "_id" : ObjectId("5514ecc73910d3e808b94180")
    }, 
    {
        "recipt_Number" : 100,
        "amount" : 2414,
        "_id" : ObjectId("5514ecc73910d3e808b9417f")
    }, 
    {
        "recipt_Number" : 101,
        "amount" : 242,
        "_id" : ObjectId("5514ecc73910d3e808b9417e")
    }, 
    {
        "recipt_Number" : 102,
        "amount" : 2424,
        "_id" : ObjectId("5514ecc73910d3e808b9417d")
    }
],
"__v" : 0

}

我在 mongoose 的集合中有很多这样的文档。我想为特定用户找到最新输入的 recipt_Number。就像在这种情况下,它应该给我 102 作为答案。

我还附上了代码行片段。这也是获得相同结果的一种方式。

db.topics.find( {'User': 8}, { 'allRecipt': { $slice: -1 },'startingReciptBookNumber':0,'endingReciptBookNumber':0,'User':0,'_id':0,'__v':0 } )

查询结果如下

{
    "allRecipt" : [ 
        {
            "recipt_Number" : 102,
            "amount" : 2424,
            "_id" : ObjectId("5514ecc73910d3e808b9417d")
        }
    ]
}

虽然查询不会在结果中给出任何单个数字,但它会通过 result.allRecipt.0.recipt_Number 给出所需的结果,您所需的数字将始终进入 0 索引。我想这是你想要的号码。

这里$slice有所作为。

谢谢