我正在尝试使用输出绑定将文档保存到CosmosDB中的集合。
数据库是使用MongoDB API访问创建的。
我注意到了一些问题:
module.exports = function (context, req) {
if (req.body) {
context.bindings.outputObject = JSON.stringify({
name: "Mike P"
}); // tried outputObjectOut as well, no difference
context.res = {
// status: 200, /* Defaults to 200 */
body: "Hello " + (req.query.name || req.body.name)
};
}
else {
context.res = {
status: 400,
body: "Please pass a name on the query string or in the request body"
};
}
context.done();
};
JavaScript代码的 function.json 与下面给出的相同。
public static HttpResponseMessage Run(HttpRequestMessage req,
out object outputObject, TraceWriter log)
{
outputObject = new {
name = "Mike P"
};
log.Info("test");
return req.CreateResponse(HttpStatusCode.OK);
}
这是function.json
{
"type": "documentDB",
"name": "outputObject",
"databaseName": "newexp",
"collectionName": "Test",
"createIfNotExists": true,
"connection": "newexp_DOCUMENTDB",
"direction": "out"
}
Azure控制台中无法再查询该集合。通过像3T这样的MongoDB客户端查询也失败了。
我希望此代码能够正常工作,并且文档会显示在数据库的集合中。但相反,我看到该集合变得无法使用。这是一个错误还是我做错了什么?任何帮助或指示表示赞赏。
答案 0 :(得分:0)
Azure函数CosmosDB绑定是针对CosmosDB的DocumentDB API(或SQL API)编写的 - 因此不能与Mongo API一起使用。我相信如果在对象中添加必需的_id属性,它可能会起作用。没有_id字段,Mongo API调用将失败