另一个字段的 mongodb 中的投影字段

Projection field in mongodb for another field

本文关键字:字段 投影 mongodb 另一个      更新时间:2023-09-26

我有以下Json的例子:

{
    "status": "1",
    "instancia": "1",
    "infoAdicionais": {
        "partes": [{
            "id": "123"
        }]
    }
}

我想要一些模式将 de partes 数组从对象中移出,如下所示:

{
    "status": "1",
    "instancia": "1",
    "partes": [{
            "id": "123"
    }]
}

查找命令有效?我正在使用mongodb 2.0,聚合函数不可用。

谢谢

似乎从这篇mongodb博客文章中,mongodb 2.2上提供了聚合框架,包括$project

以下内容将:

  • $project所有字段,但infoAdicionals并创建一个具有$infoAdicionais.partes的新字段

在 mongo 2.2 中,查询是:

db.runCommand({
  aggregate: "device",
  pipeline: [{
    $project: {
      "status": 1,
      "instancia": 1,
      "partes": "$infoAdicionais.partes"
    }
  }]
});

在 mongo 2.6+ 中查询是:

db.device.aggregate([{
  $project: {
    "status": 1,
    "instancia": 1,
    "partes": "$infoAdicionais.partes"
  }
}])

在 mongo 2.0.0 中,我用光标迭代每个项目,添加一个属性并删除另一个:

var cursor = db.device.find();
while(cursor.hasNext()){
    var item = cursor.next();
    item.partes=item.infoAdicionais.partes;
    delete item['infoAdicionais'];
    printjsononeline(item);
}