Azure functions 防止Cosmos DB在Azure函数中查询之前返回所有文档

Azure functions 防止Cosmos DB在Azure函数中查询之前返回所有文档,azure-functions,azure-cosmosdb,Azure Functions,Azure Cosmosdb,我已经编写了一个Azure函数,它在函数的中途构建了一个CosmosDb文档查询,并执行该查询以在集合中查找文档 由于我为CosmosDB指定了绑定,但没有提供Id或Sql查询,因此默认情况下是否检索整个集合?如果是这样的话,有没有办法防止这种情况发生,因为我只想在构建文档查询并返回结果后查询集合 我是否需要指定inout的方向以实现此目的 public static class SynchroniseMemberData { [FunctionName("Synchronise

我已经编写了一个Azure函数,它在函数的中途构建了一个CosmosDb文档查询,并执行该查询以在集合中查找文档

由于我为CosmosDB指定了绑定,但没有提供Id或Sql查询,因此默认情况下是否检索整个集合?如果是这样的话,有没有办法防止这种情况发生,因为我只想在构建文档查询并返回结果后查询集合

我是否需要指定inout的方向以实现此目的

   public static class SynchroniseMemberData
{

    [FunctionName("SynchroniseMemberData")]
    public static void Run([EventGridTrigger] EventGridEvent eventGridEvent, ILogger log,
        [CosmosDB(
                databaseName: "MembersData",
                collectionName: "Members",
                ConnectionStringSetting = "offers_DOCUMENTDB"),
        ]
        DocumentClient client,
        [CosmosDB(
            databaseName: "MembersData",
            collectionName: "Members",
            ConnectionStringSetting = "offers_DOCUMENTDB")
        ]
        out object document
    )
    {

        log.LogInformation(eventGridEvent.Data.ToString());

        MemberDetails memberDetails = JsonConvert.DeserializeObject<MemberDetails>(eventGridEvent.Data.ToString());
        Uri collectionUri = UriFactory.CreateDocumentCollectionUri("MembersData", "Members");
        var query = client.CreateDocumentQuery<Document>(collectionUri).Where(p => p.Id == memberDetails.id);
        var member = query.AsEnumerable().FirstOrDefault();

        if (member == null)
        {
            document = new
            {
               //Create New Member
            };
        }
        else
        {
           //update member details and save back
            document = member;
        }

    }
否,拉动DocumentClient不会查询集合

在中,当您请求DocumentClient时,它使用CosmosDBClientBuilder获取属性值的DocumentClient实例:

rule.BindToInput<DocumentClient>(new CosmosDBClientBuilder(this));

你有宇宙触发函数吗?如果可能,发布函数代码。添加到代码中,实际触发器来自EventGridTrigger您看到了什么行为使您认为它默认获得了整个集合?文档中的“抱歉”,我的意思是-代码的哪一部分返回了整个集合?您正在对输入使用DocumentClient绑定,因此在执行查询之前不会实际获得任何结果?
ICosmosDBService service = _configProvider.GetService(resolvedConnectionString, attribute.PreferredLocations, attribute.UseMultipleWriteLocations, attribute.UseDefaultJsonSerialization);
return service.GetClient();