我正在为RavenDB编写节点包装器。
我使用的是版本3,但因为没有HTTP文档,我一直依赖于2.0和2.5文档。
关于单个文档操作,我已成功使用this doc page用于PUT,DELETE和多个PATCH到单个文档。
同样地,我在一次HTTP调用中成功地使用this doc page多个PUT和几个文档的DELETE,但是在一次调用中对多个文档进行PATCH处理时,文档有点模糊
根据"批处理请求"标题,它清楚地说明了它的可能性:
使用' / bulk_docs'处理RavenDB中的请求批处理。 endpoint,接受要执行的操作数组。操作的格式是:
方法 - PUT,PATCH或DELETE。
...
对于PUT,我发布到/ bulk_docs:
[
{
Method: 'PUT',
Key: 'users/1',
Document: { username: 'dummy' }
Metadata: { 'Raven-Entity-Type': 'Users' }
},
...
]
对于DELETE,我发布到/ bulk_docs:
[
{
Method: 'DELETE',
Key: 'users/1'
},
...
]
对于PATCH,我试过没有任何运气就发布了以下内容:
[
{
Method: 'PATCH',
Key: 'users/1',
Document: {
Type: 'Set',
Name:'username',
Value: 'new-username'
}
},
...
]
和
[
{
Method: 'PATCH',
Key: 'users/1',
Type: 'Set',
Name:'username',
Value: 'new-username'
},
...
]
我回来的所有内容都是500 - Internal Server Error
,并且没有任何关于在该文档页面上修补多个文档的示例,我有点卡住......
任何帮助将不胜感激:)
答案 0 :(得分:0)
PATCH的结构是:
[
{
Method: 'PATCH',
Key: 'users/1',
Patches: [{
Type: 'Set',
Name:'username',
Value: 'new-username'
}]
},
...
]
完整的结构可以在这里看到: https://github.com/ayende/ravendb/blob/master/Raven.Abstractions/Commands/PatchCommandData.cs#L72