Denis
кокретнее в чем вопрос/задача?
У меня несколько сервисов, который подключается к монге и имеют свои базы данных в монге. Ипользуется коннектор motor для подключения. При подключении указывается хост, порт, юзер, база и имя репликасета. В итоге все сервисы конектятся к нужному репликасету, а вот один сервис конектится к слейву, и при попытки записать данные в базу, выдает ошибку, связанную с тем что он не может записать данные в слейв.
Denis
Немогу понять в чем дело
Дмитрий
Дмитрий
из таких сопосбов)))... взять и с равнить подключения. Найти в чем разница. Дедовский "метод деления пополам"
AstraSerg
@denyasmail а пробовали использовать uri для подключения? Там, кроме всего остального, можно указать все ноды реплики
Denis
А можете connection string показать?
async def set_mongodb_connection(app: Application, _: Context, loop: BaseEventLoop):
client = motor.motor_asyncio.AsyncIOMotorClient(
app.config.MONGODB_HOST,
app.config.MONGODB_PORT,
username=app.config.MONGODB_USER,
password=app.config.MONGODB_PASS,
authSource=app.config.MONGODB_DBASE,
replicaset=app.config.MONGODB_REPLICASET_NAME,
Denis
Constantin
async def set_mongodb_connection(app: Application, _: Context, loop: BaseEventLoop):
client = motor.motor_asyncio.AsyncIOMotorClient(
app.config.MONGODB_HOST,
app.config.MONGODB_PORT,
username=app.config.MONGODB_USER,
password=app.config.MONGODB_PASS,
authSource=app.config.MONGODB_DBASE,
replicaset=app.config.MONGODB_REPLICASET_NAME,
В хостах у вас указаны все состовляющие репликасета?
Я не очень хорошо пишу на питоне, и не пользовался motor, но чтобы корректно работать с репликасетом нужно все узлы указать. Возможно у вашего «больного» сервиса не все указаны.
Denis
Геннадий
Привет! Подскажите, как индексы правильно сделать. Чего-то доку прочитал, но не до конца понял. Делаю .find({a: 1, b: 2}).sort({c:1}). То есть выбор по атрибутам a и b, сортировка по c. Я правильно понял, что делать надо один индекс на a и b, а ещё один на c?
Геннадий
А, ещё вот частный случай: .find({a: 1, b: 1}.sort({b:1}), теперь сортировка по ключу, который входит в первый индекс. По логике тоже надо сделать один индекс на a и b и ещё один просто на b. Правильно рассуждаю?
AstraSerg
Геннадий
Понял, спасибо.
AstraSerg
проверить просто: db.collection.explain().find({a: 1, b: 2}).sort({c:1}) смотрите что би не было collscan
AstraSerg
ну и желательно что бы количесвто сканированнх докуметов было 0 (https://docs.mongodb.com/manual/core/query-optimization/#covered-query)
Vova
Кто работает с монгой на языке C# через официальный драйвер, если мне нужно два поля в equals фильтр положить, как можно сделать кроме использования BsonDocument?
Users.Find(Builders<User>.Filter.Eq("_id", model.PhoneNumber).Eq("Password", model.Password))
Так пытался через билдер сделать, но на второй Eq метод оно ругается (а, например, у Builders<>.Update такой проблемы нет, там можно к примеру несколько Set() подряд вызывать)
Anonymous
Users.Find(Builders<User>.Filter.Eq("_id", model.PhoneNumber) & Builders<User>.Filter.Eq("Password", model.Password))
или используй Where
Users.Find(Builders<User>.Filter.Where(_ => _.Id == model.PhoneNumber && _.Password == model.Password))
это даст строгую типизацию
Vova
Anonymous
Vova
Anonymous
На стороне клиента будет потрачено некоторое малое время на разбор Expression. Но строгая типизация запроса в разработке, как мне кажется, важнее.
Gleb
Ребят, привет, подскажите, как отдавать по ajax CSV данные ?
Gleb
например, пользователь для экселя хочет получить данные. Фильтры и прочее отправляется в urle
Gleb
Не хотелось бы на JS каждый объект коллекции сортировать) Монгой бы это как-то
AstraSerg
Gleb
Gleb
если быть точнее)
AstraSerg
AstraSerg
https://docs.mongodb.com/manual/reference/operator/aggregation/unwind/#examples
Grigorii
Всем привет!
Grigorii
Работал кто с Google BigQuery?
Grigorii
Нужна помощь с составлением запросов не бесплатная)
Max
Привет! Подскажите есть ли способ закверить агрегатную ф-цию таким образом чтобы за один запрос получить и результат агрегатной ф-ции и список всех полей которые в ней участвовали?
Max
то есть к примеру и суму по рекордах, и все рекорды которые суммировались?
Max
AstraSerg
прожект - это шаблон выходного документа
Anonymous
Господа. Есть вот такой код https://i.imgur.com/ZnFR7C6.png - получаю документ из дб и выглядит он так https://i.imgur.com/OPsszRt.png (console.log(siteData). console.log(data) же выводит вот такой результат https://i.imgur.com/cdpXMYP.png при спреде объекта и при Object.assign({}, siteData). При глубоком копировании (например, JSON.parse) все работет как надо. Почему так?
Михаил Макарычев
Anonymous
Мне интересно почему при шалоу копировании выводится какой-то иной объект.
Anonymous
Ожидаю, что шалоу и дип копирвоание в данном случае будут вести себя одинаково и возвращать нужный мне объект.
Михаил Макарычев
Max
AstraSerg
Max
юр велкам :)
нашёл вот как мне кажется более оптимальный вариант:
db.orders.group(
{
key: { ord_dt: 1, 'item.sku': 1 },
cond: { ord_dt: { $gt: new Date( '01/01/2012' ) } },
reduce: function( curr, result ) {
result.total += curr.item.qty;
},
initial: { total : 0 }
}
)
в резалт кроме тотала буду ложить ещё и нужные поля в какой-то массив)
Сергей
Делаю mongoimport csv файла часть данных в двойных кавычках. При импорте пишет ошибку extraneous “ in field.
Сергей
Внутри кавычек других кавычек нет
AstraSerg
Сергей
В Эксель импортировался
Сергей
Нет, просто текст в кавычках, разделённый точками с запятой
Сергей
Текст в двойных кавычках в каждом поле
Сергей
В одинарных кавычках импортирует но нужно именно в двойных
Сергей
Замена двойных кавычек на одинарные, но в csv текст должен быть в двойных кавычках
Сергей
Пробовал и одинарные заменить на двойные sedом но тоже самое
Сергей
Разобрался
Сергей
Азы: разделитель не тот поставил
Дима Сис. Админ
Народ, есть что по монго почитать? кроме хабра
Сергей
Ещё момент: mongoimport csv массив. Значения массива в квадратных скобках - db.collection.find - перед каждой кавычкой массива стоит слэш. Как импортировать чтобы этих слэшей не было
Сергей
?
Vova
Vova
Я делаю $push
Нужно получить индекс массива на который монга вставит элемент
Это можно сделать в рамках update запроса или никак?
Max
{ "createdAt": {"$gte": ISODate("2018-12-28T22:44:19.734Z")}} - почему этот кусок запроса не работает ?
Max
долбусь уже пол часа
Alexander
привет всем
есть pipeline с подставленным туда объектом foo { id => value }
мне нужно среди записей вытащить все, у которых некоторый атрибут $lt соответствующего по id из foo
подскажите, как это сделать?
AstraSerg
AstraSerg
Vova
пушитс только в конец массива
Это я знаю, а мне нужно получить индекс последнего элемента массива перед пушем. Я это уже решил, прежде чем делать пуш, выполняю команду find()
AstraSerg
Aleksey
парни а как лучше отловить в прометее смену мастера ?
AstraSerg
AstraSerg