我有一个看起来像这样的集合:
{
paymentType: [1,2]
}
使用聚合框架,我正在寻找一种用某些字符串替换值的方法,例如1 = A,2 = B,以便最终结果看起来像:
{
paymentType: ['A','B']
}
我也在使用mongodb 2.4。
请帮忙, 谢谢!
答案 0 :(得分:0)
聚合框架永远不会改变集合的行为。聚合管道生成新文档(通常是临时的,只是通过管道输出到客户端)。最简单的方法是抓取每个文档并替换值,然后更新字段。这里有一些包含所有基本想法的代码:
> db.stuff.find({}, { "_id" : 1, "paymentType" : 1 }).forEach(function(doc) {
var new_paymentType = []
doc.paymentType.forEach(function(val) {
if (val === 1) new_paymentType.push("A")
if (val === 2) new_paymentType.push("B")
})
db.stuff.update({ "_id" : doc._id }, { "$set" : { "paymentType" : new_paymentType } })
})