首页 > 解决方案 > 在 mongodb 聚合中使用正则表达式

问题描述

有一个包含值的集合

_id:ObjectId('......')
ton_id :ObjectId('abcd')
value:qwejc+iejtns/@
date:2019-12-13T07:09:40.075+00:00


_id:ObjectId('......')
ton_id :ObjectId('abcd')
value:asdf+kine
date:2018-1-13T07:09:40.075+00:00

需要一个必需的输出:

之后抓取数据+

_id:ObjectId('......')
ton_id :ObjectId('abcd')
value:iejtns/@
date:2019-12-13T07:09:40.075+00:00


_id:ObjectId('......')
ton_id :ObjectId('abcd')
value:kine
date:2018-1-13T07:09:40.075+00:00

标签: mongodbmongodb-queryaggregation-framework

解决方案


您可以使用符号$split拆分,+然后$arrayElemAt获取最后一个索引。

db.collection.aggregate([
  { "$project": {
    "value": {
      "$arrayElemAt": [{ "$split": ["$value", "+"] }, -1]
    }
  }}
])

Mongo游乐场


推荐阅读