Я использую Azure Cosmos DB с MongoDB Api в своем проекте, разработанном с помощью Golang и MongoDB Go Drivers.Когда я пытаюсь получить счет с помощью приведенного ниже кода, выдается ошибка Invalid response from server, value field is not a number
itemCount, err := myCollection.CountDocuments(ctx, bson.D{{"$and", bson.A{bson.M{"userid": user.ID, "siteid": site.ID}}}})
Этот же код возвращает количество элементов (в данном случае 532), когда я пытался выполнить его в базе данных MongoDB.Затем я решил попробовать тот же запрос, написав простое приложение .Net, которое отлично работало как с MongoDB, так и с CosmosDB.Ниже приведен код, который я использовал, и он напечатал 532
для обеих баз данных.
var count = database.GetCollection<Model>("myCollection").CountDocuments(filter);
Console.WriteLine(count);
Я также попытался запросить обе базы данных через Robo3T.Запрос db.getCollection('Consents').count({})
возвратил 532
из MongoDB, в то время как тот же запрос возвратил NumberLong(532)
из CosmosDB.
Я написал это поведение на форумах MSDN, но никто не полагался.Я даже не уверен, если это проблема API базы данных или драйвера.В случае драйвера это работает с MongoDB, и это то, что он обещал мне сделать.В случае API базы данных он работает с драйверами .Net и говорит мне, что Microsoft хорошо осведомлена об этом поведении и считает его приемлемым и обрабатывает его в своих драйверах.У кого-нибудь есть идеи, как преодолеть эту ситуацию?