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