MongoError: "Unrecognized expression '$replaceAll'"
MongoError: "Unrecognized expression '$replaceAll'"
我尝试 运行 Mongodb(版本 4.4.5)中的以下代码。
db.getCollection('articles').aggregate([
{
$match: {
'art_xml_data.article.journal_id': 'ei',
'art_status': 'publish'
}
},
{
$addFields: {
test: { $replaceAll: { input: '$art_file_path', find: "/", replacement: "_" } }
}
},
{
$project: {
'journal_id': '$art_xml_data.article.article_id',
'file': '$art_file_path',
'year': '$art_xml_data.article.pub_date.preprint.year',
'gn': '$test'
}
}
])
但是在执行时显示,
错误:命令失败:{
“好的”:0,
“errmsg”:“无法识别的表达式‘$replaceAll’”,
“代码”:168,
“codeName”:“无效的管道操作符”
}
我知道 Mongo 4.4 版中引入了 $replaceOne 和 $replaceAll 聚合。这里我的 mongo 版本是 4.4.5 但仍然显示错误。这是版本信息:
MongoDB shell version v4.4.5
Build Info: {
"version": "4.4.5",
"gitVersion": "ff5cb77101b052fa02da43b8538093486cf9b3f7",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubuntu2004",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
db.adminCommand( { setFeatureCompatibilityVersion: "4.4", writeConcern: { wtimeout: 5000 } } )
如果你的二进制文件是 4.4
必须解决问题
我尝试 运行 Mongodb(版本 4.4.5)中的以下代码。
db.getCollection('articles').aggregate([
{
$match: {
'art_xml_data.article.journal_id': 'ei',
'art_status': 'publish'
}
},
{
$addFields: {
test: { $replaceAll: { input: '$art_file_path', find: "/", replacement: "_" } }
}
},
{
$project: {
'journal_id': '$art_xml_data.article.article_id',
'file': '$art_file_path',
'year': '$art_xml_data.article.pub_date.preprint.year',
'gn': '$test'
}
}
])
但是在执行时显示, 错误:命令失败:{ “好的”:0, “errmsg”:“无法识别的表达式‘$replaceAll’”, “代码”:168, “codeName”:“无效的管道操作符” }
我知道 Mongo 4.4 版中引入了 $replaceOne 和 $replaceAll 聚合。这里我的 mongo 版本是 4.4.5 但仍然显示错误。这是版本信息:
MongoDB shell version v4.4.5
Build Info: {
"version": "4.4.5",
"gitVersion": "ff5cb77101b052fa02da43b8538093486cf9b3f7",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubuntu2004",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
db.adminCommand( { setFeatureCompatibilityVersion: "4.4", writeConcern: { wtimeout: 5000 } } )
如果你的二进制文件是 4.4
必须解决问题