no
no
тоже с update оператором
Egor
доброго утра всем.
Есть реплика A B C,
C - ввел недавно и хочу IP адрес B перенести на C - они все секондари, A - праймари. Может ли чтото сломаться или достаточно погасить B, перенести ип на C и запуститься, а реплика догонит и все будет супер?
Eugen
Привет всем , ребят, подскажите пожалуйста
У меня есть такой документ
{
"_id": "5f860e1da75b577bc4c3c27b",
“name”: “exists”,
"uniqe": true,
}
{
"_id": "5f860e1da75b577bc4c3c27c”,
“name”: “exists”,
"uniqe": false,
}
{
"_id": "5f860e1da75b577bc4c3c27d”,
“name”: “exists”,
"uniqe": false,
}
и надо вывести
{
“name”: “exists”,
“countUniqeTrue”: 1,
“countUniqeFalse”: 2,
}
подскажите как это сделать ?
Roman
Находишь по полю все объекты, дальше фильтруешь?
const uniqeTrue = data.filter(obj => obj["uniqe"] === true).length;
const uniqeFalse = data.filter(obj => obj["uniqe"] === false).length;
Eugen
нууу я бы хотел на уровне запроса в базу это сделтаь
Eugen
бо может дойти до нескольки тысячь документов…
Eugen
и фильтром не до конца хорошое решение (
Aragroth
Привет всем , ребят, подскажите пожалуйста
У меня есть такой документ
{
"_id": "5f860e1da75b577bc4c3c27b",
“name”: “exists”,
"uniqe": true,
}
{
"_id": "5f860e1da75b577bc4c3c27c”,
“name”: “exists”,
"uniqe": false,
}
{
"_id": "5f860e1da75b577bc4c3c27d”,
“name”: “exists”,
"uniqe": false,
}
и надо вывести
{
“name”: “exists”,
“countUniqeTrue”: 1,
“countUniqeFalse”: 2,
}
подскажите как это сделать ?
Ну, я вот так накидал по быстрому
Aragroth
Eugen
walsash
Всем привет! Из объекта posts мне нужно достать объекты, у которых "published: true". Получается только все объекты вытащить через find, а с параметрами вообще не пойму как запрос составить. Хелп?
Ilya
Ilya
то есть если вы составите примерно такой запрос :
db.collection.find({_filter_}, {posts: { $elemMatch: { published: true}}})
то должны будут вернуться документы удовлетворяющие вашему филтру но в массиве posts должны остаться только с published: true
walsash
Ilya
ну вдруг вам надо как то сами документ отфильтровать - по какому то условию
Ilya
то есть можно и {} - тогда будут все документы возвращаться
walsash
то есть можно и {} - тогда будут все документы возвращаться
Аа, я думал стандартный параметр какой-то. Тогда не получается.
.find({}, {"posts": {"$elemMatch": {"published": True}}})
На выходе: pymongo.cursor.Cursor object at 0x03AA1890
Если проитерировать: {'_id': ObjectId('5f7c1277abc517c9c90fd506')}
Mrk
Кто-нибудь знает можно ли в mongo на вставку данных сделать какую-то интеграцию с PostgreSql, чтобы также и туда Insert проходил?:)
yopp
yopp
Сделать сервис который подписывается на изменения в коллекции и выполняет вставку в pg
yopp
Сервис в том смысле что какой-то процесс на удобном вам языке, который будет подписан на монгу и будет иметь доступ в пг
yopp
Для change stream нужна реплика, да
Максим
Ребята, помогите найти причину. При ребуте сервера демон монги не стартует, падает с ошибкой. Если сделать systemctl restart mongodb — то все ок, поднимается. Вот лог —
2020-10-14T22:35:16.659+0300 I CONTROL [main] ***** SERVER RESTARTED *****
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] MongoDB starting : pid=904 port=27017 dbpath=/var/lib/mongodb 64-bit host=Planck
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] db version v3.6.8
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] git version: 8e540c0b6db93ce994cc548f000900bdc740f80a
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] allocator: tcmalloc
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] modules: none
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] build environment:
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] distarch: x86_64
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] target_arch: x86_64
2020-10-14T22:35:16.729+0300 I CONTROL [initandlisten] options: { config: "/etc/mongodb.conf", net: { _____bindIp: "127.0.0.1,ЗДЕСЬ IP СЕРВЕРА"_____, unixDomainSocket: { pathPrefix: "/run/mongodb" } }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongodb.log" } }
2020-10-14T22:35:16.731+0300 E STORAGE [initandlisten] Failed to set up listener: ____SocketException: Cannot assign requested address____
2020-10-14T22:35:16.731+0300 I CONTROL [initandlisten] now exiting
2020-10-14T22:35:16.731+0300 I CONTROL [initandlisten] shutting down with code:48
Я выяснил что после ребута на сервере нет папки /run/mongodb
Если сделать рестарт монги (systemctl restart mongodb) то эта папка появляется и всё работает.
Максим
почему такое может быть? и как исправить?
Максим
https://groups.google.com/g/mongodb-user/c/k9-y1NPchwY
похоже что что-то не так с байнд айп
.
почему загружать всю базу данных при старте программы в переменную, а потом с интервалом сохранять данные
это плохое решение
Alikhan
всем привет! технологии: mean. Я фронтендер и редко приходится писать api. написал апишку на ноде и монго (до обновления). Славил баг:
Есть форма входа/регистрации. Данные отправляются на сервер со статусом "pending" и морган выводит в консольку что поступил запрос. Но сервер не сохраняет юзера в бд.
Думаю проблема в монго. Так как апишку писал 2 месяца назад. Тогда все работала. Я не бэкендр и все это время не запускал свой сервер. Спустя месяца 2, сейчас славил баг такой
Alikhan
мой метод регистрации, модель юзера, и app.js файл
Alikhan
Alikhan
Рустам
Коллеги всем привет! Хочу задать вопрос 🙂
Кто-нибудь работал с Mongo DB(Motor) в связке c aiohttp?
В частности в продакшне, как полет?
Eugen
Всем привет, ребят подскажите пожалуйста.
Мне надо сделать график в котором будет показано за каждый день сколько людей зарегалось.
От старта нп 01-01-2020 и до сегодня . Как это можно найлучше реализовать ? есть ли возможность выписать список дней ( каждый день ) и получить отдельно лист количество ?
Если что, использую так же Node.js
Nick
Nick
ну так добавьте их если нет уже перед выводом на экран
Viktar
Добрый день, подскажите почему для запроса db.collection.find{city: 'NY', links: {$exists: true}, version:5}) не используется индекс db.collection.createIndex({city:1,version:1},{partialFilterExpression:{links:{$exists:true},background:true}}) ,а используется индекс db.collection.createIndex({city:1}) ?
yopp
yopp
db.collection.getPlanCache().clear().
Viktar
не помогло
yopp
а индекс уже создался?
Viktar
да, он есть в списке
Viktar
пробую его хинтом подкинуть, но не получаю ошибку
Viktar
в хинте же имя индекса указывается?
Viktar
Error: error: {
"ok" : 0,
"errmsg" : "error processing query: ns=catalog.personCatalogTree: $and\n city $eq \"ny\"\n links exists\nSort: {}\nProj: {}\n planner returned error :: caused by :: hint provided does not correspond to an existing index",
"code" : 2,
"codeName" : "BadValue"
}
yopp
yopp
The index to “hint” or force MongoDB to use when performing the query. Specify the index either by the index name or by the index specification document.
Viktar
посмотрел db.collection.stats() размер индекса какой то совсем смешной
Viktar
аверное индекс криво создался
yopp
а, $exists в фильтрах индексов так и не работает: https://jira.mongodb.org/browse/SERVER-17853
Viktar
"city_links" : 12288
yopp
а, хотя пишут что уже реализовали
yopp
а какая у вас версия монги?
Viktar
4.4
Viktar
мне кажется я криво индекс создал
Viktar
похоже я бекграунд запихнул в партиал экспрешен
yopp
а, да :)
yopp
👍
Viktar
2 часа моей жизни)))
Viktar
а $exists: false ещё не реализовали же?
yopp
получается так, да
yopp
в принципе, поиск по $exists не очень хороший паттерн
Viktar
согласен. но мне надо сократить выборки для процессинга. поэтому приходится выкручиваться
yopp
добавить поле с null?
yopp
и положить его в индексе в постфикс?
Viktar
я не знаю что такое постфикс
Viktar
а вот find хорошо отрабатывает с null если поле не существует
Viktar
думаю попробывать в партиал експрешен добавть
Алексей
Всем добро вечера
Алексей
подскажите как сделать update через updateOne(filter,doc)
Алексей
но что бы в фильтр был id
Алексей
с базы
Алексей
все перепробывал
Алексей
ни как не апдейтит
Алексей
но если делаю поиск по title к примеру