mongodb - $split 并返回 mongodb 查询中的第一个数组元素

标签 mongodb mongodb-query aggregation-framework

[
  {lecture : "427#Math"},
  {lecture : "217#Science"},
  {lecture : "7#History"},
  {lecture : "12#Music"}
]

假设我有上面的数据库结构。我只想返回讲座代码。 到目前为止我做了什么?

db.collection.aggregate([
    {$project: {"lecture": {$split: ["$lecture" , "#"]}}}
])

但这作为集合 ["427", "Math"] 返回。我怎样才能只返回 # 字符之前的讲座代码。

最佳答案

您可以使用 $arrayElemAt仅返回 $split 结果中的第一项:

db.collection.aggregate([
    {$project: {"lecture": {$arrayElemAt:[{$split: ["$lecture" , "#"]}, 0]}}}
])

关于mongodb - $split 并返回 mongodb 查询中的第一个数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43605867/

相关文章:

javascript - 架构错误, 'has no method save'

javascript - 尝试使用 Expressjs 从 Web 服务器连接到 MongoDB

mongodb - 如何用前缀字符串替换数组中的所有元素?

javascript - 聚合函数中跳过计数 0

带有总和的 mongodb 聚合 addToSet

mongodb - 如何有效地聚合这些数据

c# - 使用 MongoDB 10gen 驱动程序查询投影

java - mongo jpa 查询之间

mongodb - MongoDB 中的负搜索

mongodb - 每个桶的顶级文档