在MongoDb中获取先前处理的文档

我具有以下集合结构:

{
   "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来保留相同的行,从而获得相同的结果。

zxtong961 回答:在MongoDb中获取先前处理的文档

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_docs数组具有使用先前文档的值更新的所有文档。

本文链接:https://www.f2er.com/3030944.html

大家都在问