我在Rethink中有一系列现有文档.他们都有一个ID字段.我想要做的基本上是这个(在javascript中):
r.table('my_table').replace(myArrayOfDocuments);
Run Code Online (Sandbox Code Playgroud)
当我尝试时,我得到一个错误说: Inserted value must be an OBJECT (got ARRAY)
有任何想法吗?
小智 8
如果你有一个要替换的对象列表,那么这样的东西应该有效:
r.expr(myArrayOfDocuments)
.forEach(function(row) { return r.table('my_table').get(row('id'))
.replace(row); })
.run(conn, callback);
Run Code Online (Sandbox Code Playgroud)
这假定您的主键是id,但如果您想要更通用的解决方案,您可以替换id为r.table('my_table').info()('primary_key').
你发布的查询不起作用的原因r.table('my_table').replace(...)是试图用你给它的参数替换表中的每一行 - 在这种情况下,是一个数组而不是预期的dict.通常r.table('my_table').replace(...)应该给出一个基于旧行生成新行的函数.有关更多详细信息或示例,请参阅文档replace.
| 归档时间: |
|
| 查看次数: |
475 次 |
| 最近记录: |