Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 获取MongoDb中以前处理过的文档_Database_Mongodb_Bigdata_Aggregation - Fatal编程技术网

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
数组将所有文档更新为以前文档的值。

非常感谢您的支持。我得到了预期的结果。