从Azure函数

时间:2017-10-11 13:45:24

标签: azure azure-cosmosdb

我们都知道我们可以使用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中独立保存这些对象列表]

1 个答案:

答案 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