Я написал функцию Azure, которая наполовину проходит через функцию, создает запрос документа CosmosDb и выполняет его для поиска документа в коллекции.
Поскольку у меня есть привязка для CosmosDB, указанная безПредоставляется запрос Id или Sql. Получает ли это всю коллекцию по умолчанию? Если да, есть ли способ предотвратить это, поскольку я хочу запрашивать коллекцию только после того, как построю запрос документа и верну результат.
Нужно ли указывать направление ввода-вывода для достижения этого?
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;
}
}