mongodb - 获取数组中的第一个元素并使用聚合返回?

标签 mongodb mongodb-query aggregation-framework

如何使用 Mongo 聚合获取和返回数组中的第一个元素?

我尝试使用此代码:

db.my_collection.aggregate([
    { $project: {
        resp : { my_field: { $slice: 1 } }
    }}
])

但我收到以下错误:

uncaught exception: aggregate failed: {
    "errmsg" : "exception: invalid operator '$slice'",
    "code" : 15999,
    "ok" : 0
}

注意'my_field'是4个元素的数组,我只需要返回第一个元素。

最佳答案

从 3.2 开始,我们可以使用 $arrayElemAt获取数组中的第一个元素

db.my_collection.aggregate([
    { $project: {
        resp : { $arrayElemAt: ['$my_field',0] }
    }}
])

关于mongodb - 获取数组中的第一个元素并使用聚合返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26762887/

相关文章:

mysql - 从 mysql 到 mongodb - 设计集合

java - 带有 $in 和 upsert 的 MongoDB UpdateMany

node.js - MongoDB 过滤器 $lookup 具有日期范围的文档

mongodb - 在查找中比较字符串和 objectId

ruby - Mongoid 给出未初始化的常量 Mongo

mongodb - 对电子邮件集合进行高效索引,以便按电子邮件域进行排序和过滤

node.js - 带有javascript的MongoDB动态查询,静态工作,不带变量

java - Mongodb/无重复

c# - 不支持 MongoDB 投影 toListAsync() 方法

mongodb - 计算嵌入文档/数组中字段的平均值