[
{lecture : "427#Math"},
{lecture : "217#Science"},
{lecture : "7#History"},
{lecture : "12#Music"}
]
假设我有上面的数据库结构。我只想返回课程代码。
到目前为止我做了什么?
db.collection.aggregate([
{$project: {"lecture": {$split: ["$lecture" , "#"]}}}
])
但这会以collection
["427" , "Math"]
的形式返回。我如何才能只返回#
字符前面的部分的课程代码。 最佳答案
您可以使用$arrayElemAt只返回$split
结果中的第一项:
db.collection.aggregate([
{$project: {"lecture": {$arrayElemAt:[{$split: ["$lecture" , "#"]}, 0]}}}
])