MongoDB 中的 SQL Server 替换
Posted
技术标签:
【中文标题】MongoDB 中的 SQL Server 替换【英文标题】:SQL Server Replace in MongoDB 【发布时间】:2018-01-16 16:40:41 【问题描述】:我想在投影中进行替换。就像一个 SQL Server REPLACE。我很确定我们可以在代码中处理它,但需要寻找一些 shell 命令。
这就是我所拥有的
db.OrderHistoryHeader.aggregate([
$project:
"_id":0,
"OrderNo":1 // I want to do Replace(OrderNo,'XYZ','ABC')
],
allowDiskUse:true
).pretty();
【问题讨论】:
@micki 我们可以将“OrderNo”的值传递给存储的 javascript 函数并取回该值对吗? @Veeram 请查看以上评论 你为什么要这样做?你可以在代码中做所有事情。 @Krishna 我敢打赌,您在 SQL 方面想的太多了。 MongoDB Aggregation Framework 是执行此类数据转换的正确工具,无需在服务器端存储 JS 代码。 【参考方案1】:目前没有内置运算符,但您可以将 $indexOfBytes 与 $substr 和 $concat 结合使用。
db.OrderHistoryHeader.aggregate([
$addFields:
index: $indexOfBytes: [ "$OrderNo", "XYZ" ] ,
,
$project:
OrderNo:
$concat: [
$substr: [ "$OrderNo", 0, "$index" ] ,
"ABC",
$substr: [ "$OrderNo", $add: [3, "$index"] , -1 ]
]
,
$project:
index: 0
])
其中3
是被替换文本的长度。
【讨论】:
以上是关于MongoDB 中的 SQL Server 替换的主要内容,如果未能解决你的问题,请参考以下文章