如何匹配mongodb中不同列表中的两个字段以进行更新查询

时间:2016-06-22 15:21:30

标签: mongodb pentaho kettle

我需要帮助,我必须将两个嵌入式文档与其ID匹配 例如我的文档结构是这样的:

{
        "id" : "00025",
        "ean" : "01213134325",
        "notify_stock" : NumberLong(10),
        "specs" : [
            {
                "id" : "0005",
                "spec" : [
                    {
                        "lang" : "fr-FR",
                        "text" : "taille"
                    }
                ],
                "value" : [
                    {
                        "lang" : "fr-FR",
                        "text" : "grand"
                    }
                ]
            }]
}

我有一个像这样的多语言文件

sku_id;spec_id;spec_name;spec_value
00025;0005;size;big
00025;0006;color;black

所以我在mongodb中的查询是这样的:

Modifier update query:
{
  "skus.id" : "<string val>",
  "skus.$.specs.id" : "<string val>"
}
Modifier update details:
{
  "$push" : {
    "skus.$.specs.$.spec" : {
      "lang" : "<string val>",
      "text" : "<string val>"
    },
    "skus.$.specs.$.value" : {
      "lang" : "<string val>",
      "text" : "<string val>"
    }
  }
}

当我在与步骤输出mongodb的Pentaho数据集成中执行此操作时,我收到了错误

"Too many positional (i.e. '$') 
        elements found in path 'skus.$.specs.$.spec'"

0 个答案:

没有答案