【问题标题】:rethinkdb update nested arrayrethinkdb 更新嵌套数组
【发布时间】:2015-11-21 00:45:40
【问题描述】:

我有以下结构:

{ "id": "3065e957-56e9-4084-8e32-bb4de8d9265a", "id_service": "570b4abe-70fe-44e0-845e-74eb60081fc4", “推文”:[ { "created_at": "2013-10-13 00:58:11", "id_tweet": "389193311908413440", “id_user”:12375562, “名称”:“elgabo1”, "照片": "https://pbs.twimg.com/profile_images/1827710728/45d1be6d2e0f1c710814e098d6f56c12_normal.png", "screen_name": "elgabo1", “status_tweet”:0, "text": "@profeco Deurope Gran Sur Tapa los sellos de suspensión con 宣传" }, { "created_at": "2013-10-02 06:50:01", "id_tweet": "385295588377387008", “id_user”:12375562, “名称”:“elgabo1”, "照片": "https://pbs.twimg.com/profile_images/1827710728/45d1be6d2e0f1c710814e098d6f56c12_normal.png", "screen_name": "elgabo1", “status_tweet”:1, "text": "@caspoliciadf Delegacion coyoacan" } ] }

我想设置 status_tweet:1 from id_tweet:"389193311908413440"

我可以通过 id_tweet:"389193311908413440" 获取数组的元素

r.db('twitter_settings').table('tweets_service').filter({id:'3065e957-56e9-4084-8e32-bb4de8d9265a'}) .map(函数(d){ 返回 { "tweets": d("tweets").filter({'id_tweet':'665305939294056448'}) } } )

但是当我尝试更新该字段时,我得到一个错误:

r.db('twitter_settings').table('tweets_service').filter({id:'3065e957-56e9-4084-8e32-bb4de8d9265a'}) .map(函数(d){ 返回 { "tweets": d("tweets").filter({'id_tweet':'665305939294056448'}) } } ) .update({"status_tweet": 1}) e:预期类型 SELECTION 但找到 SEQUENCE: 价值序列在: r.db("twitter_settings").table("tweets_service").filter({id: "3065e957-56e9-4084-8e32-bb4de8d9265a"}).map(function(var_341) { return {tweets: var_341("tweets ").filter({id_tweet: "665305939294056448"})}; }).update({status_tweet: 1}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^

提前致谢

【问题讨论】:

    标签: rethinkdb rethinkdb-javascript


    【解决方案1】:

    使用map后我们无法更新/删除。

    因此,将您的函数更改为在更新函数中运行map。这样的事情会起作用。

    r.db('twitter_settings').table('tweets_service')
      .filter({id:'3065e957-56e9-4084-8e32-bb4de8d9265a'})
    
      .update(function(doc) {
        return {
          tweets: doc('tweets').map(function(tweet) {
            return r.branch(
              tweet('id_tweet').eq('389193311908413440'),
              tweet.merge({status_tweet:1}),
              tweet)
          })
        }
      })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多