FaunaDB 更新记录只更新 ts(timestamp),其他没有改变

FaunaDB updating records only updates ts(timestamp), nothing else changed

我正在使用推荐的 Netlify FaunaDB

这是我的更新查询:

  const response = await client.query(
  q.Let(

    {

      matchRef: q.Select([0], q.Paginate(q.Match(q.Index("sub_search_by_auth"), auth)))

    },

    q.Update(q.Var("matchRef"), {subscription}) // do I need to put the sub inside a data property?

  )

); 

假设我在数据库中有一条记录:

{
  "ref": Ref(Collection("subscriptions"), "275059653136613888"),
  "ts": 1598577889893000,
  "data": {
    "endpoint": "https://fcm.googleapis.com/fcm/send/djvbe6Pbu-Q:APA91bGicad",
    "keys": {
      "p256dh": "BJ99-332131df",
      "auth": "12332dfsdfsdfs"
    }
  }
}

我将其 keys.p256dh 从 BJ99-332131df 更新为 BJ99-332131dfOOOOAAA 并添加了一个名为 extra 的新 属性,所以它看起来像:

{
  "ref": Ref(Collection("subscriptions"), "275059653136613888"),
  "ts": 1598577889893000,
  "data": {
    "endpoint": "https://fcm.googleapis.com/fcm/send/djvbe6Pbu-Q:APA91bGicad",
    "keys": {
      "p256dh": "BJ99-332131dfOOOOAAA",
      "auth": "12332dfsdfsdfs"
    },
     "extra": {
         "email": "my@email.com"
     }
  }
}

然后使用前面提到的更新查询来更新这条记录。

我能看到的唯一变化是 ts,没有别的。

是的,您需要将更新打包在 data 中。希望这 link 对您有所帮助。