0
{
  "LOGIN": "ABC",
  "MESSAGE_UNPROCESSED": [
    {
      "DATE": "20160219",
      "MESSAGE": [
        {
          "address": "XYZ",
          "date": "1468385398746"
        },
        {
          "address": "PQR",
          "date": "1468385398746"
        }
      ]
    },
    {
      "DATE": "20160220",
      "MESSAGE": [
        {
          "address": "LMN",
          "date": "1468385398746"
        },
        {
          "address": "JXT",
          "date": "1468385398746"
        }
      ]
    }
  ],
  "id": "e1705cae-2a57-42b3-af2e-8458ae9a43bb"
}

ログインが存在しないABC場合はフィールドにメッセージを追加したい、または存在する場合はドキュメントからオブジェクト全体を置き換えたいDATE

私はこれを試しました:

r.db('usersData').table('smsRaw').filter(function (row) {
    return row('MESSAGE_UNPROCESSED')('DATE').contains('20160222').replace({"DUMP":"DUMP"})
})

error: Cannot nest writes or meta ops in stream operations.  Use FOR_EACH instead in:
r.db("usersData").table("smsRaw").filter(function(var_13) {
    return var_13("MESSAGE_UNPROCESSED")("DATE").contains("20160222").replace({"DUMP": "DUMP"}); 
})

したがって、{"DATE":"2016018","MESSAGE":[{"address":"abc","Date":"121212"}]} このレコードが存在しない場合はMESSAGE_UNPROCESSEDset_insertを使用してレコードを追加する必要があります。そうでない場合は、日付が存在する場合は2016020配列の要素全体を置き換える必要があります

r.db('usersData').table('smsRaw').get("7cd66671-bb01-483d-a148-12ed1b7c2d31").update(function(row) {
    return {
        MESSAGE_UNPROCESSED: r.branch(
            row("MESSAGE_UNPROCESSED")('DATE').eq('20160222'),
            row("MESSAGE_UNPROCESSED")('MESSAGE').merge({"DUMP":"DUMP"}),
            row("MESSAGE_UNPROCESSED")('MESSAGE').replace({"NEW":"NEW"})
        )
    }
})         

書き込みをネストできません

この操作をpythonで行いたい

4

0 に答える 0