от
Я с помощью Azure космос БД в MongoDB API с моего проекта, разработанная с Golang и MongoDB идут драйверы. Когда я пытаюсь сделать счетчик, используя ниже код дает ошибку
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("myCollection").CountDocuments(filter);
Console.WriteLine(count);
Я также попытался запросов баз данных через Robo3T. Запрос
db.getCollection('Consents').count({})
вернулся
532
из MongoDB в то время как тот же запрос вернул
NumberLong(532)
от CosmosDB. Я писал такое поведение на форумах MSDN, но никто не полагался. Я даже не уверен, если это проблема с API базы данных или драйвера. В случае с водителем, он работает с MongoDB и это то, что он обещал мне сделать. В случае API базы данных, с которыми он работает .Net драйверы, и он говорит мне, что Microsoft прекрасно осознает эту проблему и считает ее приемлемой и обрабатывает его в свои драйверы. Кто-нибудь есть идея, как преодолеть эту ситуацию?

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста подтвердите адрес электронной почты.

1 Ответ

0 голосов
от
ваш фильтр должен быть:
itemCount, err := myCollection.CountDocuments(ctx, bson.M{"userid": user.ID, "siteid": site.ID})
бсына.М будет выполнять неявное $и
...