Database 获取MongoDb中以前处理过的文档
我有以下收集结构:Database 获取MongoDb中以前处理过的文档,database,mongodb,bigdata,aggregation,Database,Mongodb,Bigdata,Aggregation,我有以下收集结构: { "col1": "col1_value1", "col2": "col2_value1" } { "col1": "col1_value2", "col2": "col2_value2" } 如何在MongoDB中获得以下结果: { "previous_col1": "", // init value "col1": "col1_value1", "previous_col2": "", "col2": "col2_
{
"col1": "col1_value1",
"col2": "col2_value1"
}
{
"col1": "col1_value2",
"col2": "col2_value2"
}
如何在MongoDB中获得以下结果:
{
"previous_col1": "", // init value
"col1": "col1_value1",
"previous_col2": "",
"col2": "col2_value1"
}
{
"previous_col1": "col1_value1", // previous value
"col1": "col1_value2",
"previous_col2": "col2_value1",
"col2": "col2_value2"
}
在SQL中,我可以通过定义两个变量@previous_col1和@previous_col2来保持前面的行,从而获得相同的结果 此mongo shell查询执行以下操作:
var cur = db.collection.find();
var result_docs = [ ];
var prev_col1 = "", prev_col2 = "";
while (cur.hasNext()) {
let thisDoc = cur.next();
thisDoc.previous_col1 = prev_col1;
thisDoc.previous_col2 = prev_col2;
prev_col1 = thisDoc.col1;
prev_col2 = thisDoc.col2;
result_docs.push(thisDoc);
}
result\u docs
数组将所有文档更新为以前文档的值。非常感谢您的支持。我得到了预期的结果。