首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoError:无法识别的表达式'$last‘(“版本”:"5.0.4")

MongoError:无法识别的表达式'$last‘(“版本”:"5.0.4")
EN

Stack Overflow用户
提问于 2022-02-11 10:55:03
回答 1查看 344关注 0票数 0

当我试着在总体上投射

我正在使用这个MongoDB版本(“版本”:"5.0.4")

代码语言:javascript
复制
                {
                    $project: {
                        _id: 1,
                        feeling: 1,
                        updated_date: 1,
                        created_date: 1,
                        activity_type: 1,
                        activityCount: { $size: "$activity" },
                        activity_count: 1,
                        activity_tipped_count: 1,
                        activity_upvote_count: 1,
                        activity: { $last: "$activity" },
                        product: 1,
                        property: 1,
                        shared_post: 1,
                        post: 1,
                        user: 1,
                        rss_delete: 1,
                    },
                },

它给出了这个错误

代码语言:javascript
复制
MongoError: Unrecognized expression '$last'
    at Connection.<anonymous> (/Users/mac/Documents/WORK DISK/A PROJECTS/OutSourcing/Revstance-node-v3 /revstancev3/node_modules/mongodb/lib/core/connection/pool.js:453:61)
    at Connection.emit (node:events:390:28)
    at Connection.emit (node:domain:475:12)
    at processMessage (/Users/mac/Documents/WORK DISK/A PROJECTS/OutSourcing/Revstance-node-v3 /revstancev3/node_modules/mongodb/lib/core/connection/connection.js:456:10)
    at Socket.<anonymous> (/Users/mac/Documents/WORK DISK/A PROJECTS/OutSourcing/Revstance-node-v3 /revstancev3/node_modules/mongodb/lib/core/connection/connection.js:625:15)
    at Socket.emit (node:events:390:28)
    at Socket.emit (node:domain:475:12)
    at addChunk (node:internal/streams/readable:315:12)
    at readableAddChunk (node:internal/streams/readable:289:9)
    at Socket.Readable.push (node:internal/streams/readable:228:10)
    at TCP.onStreamRead (node:internal/stream_base_commons:199:23) {
  ok: 0,
  code: 168,
  codeName: 'InvalidPipelineOperator'
}

谢谢,任何帮助对我来说都很重要。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-11 16:04:04

我猜这是驱动程序未能区分$last聚合累加器和$arrayElemAt(-1)的$last别名。根据https://docs.mongodb.com/manual/reference/operator/aggregation/last/的文档,累积运算符在$project阶段无效。

也许试着用这个来代替它:

activity: { $arrayElemAt: [ "$activity", -1 ] }

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71078928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档