我们都知道我们可以使用Azure函数(使用out参数或使用return)一次在cosmos DB中保存一个文档,如:
object outputDocument = new { id = Guid.NewGuid().ToString(),
customObjList= objList
};
其中objList是自定义对象的列表。 现在上面的outputDocument将返回一个json文档,DB中的数据将以下面的格式保存。
{
"id" : "....",
"customObjList" :[
{
"_id" : "81afbe1a-3da0-4143-9dc6-0b3bf5252e0d",
...
},
{
"_id" : "2af7e1ac-15ca-424e-8af1-d3e5a2cca8de",
....
},
.....
]}
但我想要的是下面直接从Azure功能保存的文档列表
/* 1 */
{
"_id" : "81afbe1a-3da0-4143-9dc6-0b3bf5252e0d",
...
}
/* 2 */
{
"_id" : "2af7e1ac-15ca-424e-8af1-d3e5a2cca8de",
....
}
[对我而言,要求是从rss feed中获取数据并将其保存到cosmos DB,我首先将其读取并将数据存储在对象列表中,但无法在cosmos DB中独立保存这些对象列表]
答案 0 :(得分:1)
您可以使用ICollector
一次保存多个文档,或者如果您有异步功能,则可以使用IAsyncCollector
保存多个文档。
这是输出多个对象的方法:
public static void Run(ICollector<object> myQueueItem, TraceWriter log)
{
foreach (object obj in objList)
{
var objnew = {
id = Guid.NewGuid().ToString(),
someProperty = obj.someProperty
};
myQueueItem.Add(objnew);
}
}
来源:here