更新文档并在 1 个查询中获取其所有字段

Update a document and get all its fields in 1 query

我有一个文档的 ID,我想检索它的所有字段,同时更新其中的一些字段在一个查询中,可选地作为原子操作。

我尝试了以下方法:

myTable.get(id).update(someFields, {returnChanges: true})

... 但它只在文件被修改后才给我文件。我想在更新没有更改任何字段时检索文档事件。

作为 tmp 解决方法,我目前使用两个顺序查询:一个更新,然后一个获取。

我找到了解决方案:

myTable
  .get(id)
  .update(someFields, {returnChanges: 'always'})
  ('changes')(0)('new_val')

{returnChanges: 'always'} 告诉数据库总是 return 一对 new_val / old_val 即使它们相同。

重要说明:如果未找到文档,使用{returnChanges: 'always'} 将产生不抛出异常的副作用。相反,new_valold_val 都会 return null。在这种情况下不要依赖异常。