我正在用JavaScript编写服务器端存储过程,以将文档批量插入到documentDb集合中。我还想在插入主文档后更新元数据文档。我已经知道我的元数据文档的ID。 根据我的研究,我明白不是使用:
collection.queryDocuments(collectionLink, 'SELECT * FROM root r WHERE r.id = "' + metadataDocId + '"', callback)
我应该使用:
collection.readDocument(documentLink, options, callback)
我的问题是,我可以使用ID-based document link(因为我知道所有的ID)或者我是否仅限于使用自我链接?官方文档没有指定任何内容。
我的问题的原因是C#客户端API过去只支持自我链接,但现在它也支持基于ID的链接。这种支持是否也扩展到了javascript API?
答案 0 :(得分:1)
ID-based links应该可以正常工作。
答案 1 :(得分:0)
是的,可以。在JavaScript API中,Collection.getAltLink()
便于获取集合的基于ID的链接。您可以使用Azure DocumentDB bids fond farewell to Self-Links中所述的格式将文档ID附加到文档ID后面。在下面的示例中,__
是getContext().getCollection()
的别名。
var link = __.getAltLink() + "/docs/" + id;
现在,您可以使用link
进行带有文档链接参数的操作:
readDocument()
replaceDocument()
deleteDocument()
createAttachment()
queryAttachments()
readAttachments()
upsertAttachment()
readDocument
的示例:
__.readDocument(link, {}, function (err, resource, options) {
// callback code ...
});