Mongoose 从对象数组中查询倒数第二个项目

Posted

技术标签:

【中文标题】Mongoose 从对象数组中查询倒数第二个项目【英文标题】:Mongoose query penultimate item from array of objects 【发布时间】:2021-09-23 17:00:28 【问题描述】:

我有一个模式,每个模式都包含一个对象数组,如下所示:

name: String, _id: ObjectId

每个模式数组都有多个项目,我需要匹配聚合函数中倒数第二个(倒数第二个)项目_id,目前看起来像这样:

 "$match": $expr: $gt: ["$arrayElemAt": ["$path._id", -2], mongoose.Types.ObjectId(req.params.id)],
 "$project": 
        "_id": 1,
        "name": 1,
        "isFile": 
            "$cond": ["$eq": ["$ifNull":["$data", null], null],false, true]
        
    

(当前的匹配功能是我的尝试,但它不起作用) 任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

答案:用 $eq 代替 $gt...

【讨论】:

以上是关于Mongoose 从对象数组中查询倒数第二个项目的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose / MongoDB:获得倒数第二个文档

怎么取得一个数组中的倒数第二个元素

Mongoose 挂起第二个查询

汇编代码返回数组中的最小整数,而不是随机返回最后一个或倒数第二个数字

为啥倒数第二个值被复制到数组的最后一个值上[重复]

Mongoose 回调函数如何知道第二个参数是啥 db.query 结果?