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

时间:2017-04-25 08:50:46

标签: 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"]的形式返回。如何仅返回作为#字符前面部分的演讲代码。

1 个答案:

答案 0 :(得分:9)

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

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