Mongodb 我可以在聚合管道中将逗号分隔的值字符串拆分为数组吗?

Mongodb 我可以在聚合管道中将逗号分隔的值字符串拆分为数组吗?,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我有这样的数据: {tags: "a, b, c", ...} {tags: ["a", "b", "c"], ...} 是否可以创建一个管道阶段,将其拆分为一个数组,如下所示: {tags: "a, b, c", ...} {tags: ["a", "b", "c"], ...} 为放松做准备 如果做不到这一点,最好的方法是什么?出于遗留原因,我更愿意保持原始数据不变。聚合框架目前缺少这样做的操作符。存在JIRA问题,需要一个$split操作符 但是现在,您只能使用mapReduce来

我有这样的数据:

{tags: "a, b, c", ...}
{tags: ["a", "b", "c"], ...}
是否可以创建一个管道阶段,将其拆分为一个数组,如下所示:

{tags: "a, b, c", ...}
{tags: ["a", "b", "c"], ...}
为放松做准备


如果做不到这一点,最好的方法是什么?出于遗留原因,我更愿意保持原始数据不变。

聚合框架目前缺少这样做的操作符。存在JIRA问题,需要一个
$split
操作符

但是现在,您只能使用mapReduce来实现这一点。比如:

db.collection.mapReduce(
函数(){
this.tags.split(“,”).forEach(函数(标记){
发射(标签,一些数据);
});
},
功能(键、结果){
//做一些有很多结果的事情
},
{“out”:{“inline”:1}
)
或者别的什么


简而言之,在MongoDB服务器查询中,JavaScript
.split()
是唯一能够分离分隔字符串的工具。因此,您只能真正使用支持JavaScript处理的流程。

您指的是聚合框架。不,不能拆分字符串。唯一的运算符是
$substr
,它需要知道要“剪切”的索引值。MapReduce可以使用JavaScript将字符串处理成数组。这就是你们所有的了。是的,对不起,我一直这么叫。我已经告诉过你怎么解决了
mapReduce
使用JavaScript
.split()
。或者你更愿意接受JIRA问题作为答案。那是什么?“解决方案”还是等待什么?@BlakesSeven-这两种都是正常的协议。谢谢你的信息。