Petro
300 шт 9-9.6 мб
Nick
а тебе нужно то поле которое блобовое? или как раз те другие поля только?
Petro
Все)
Ruslan
Плюс я не понимаю как можно делать язык в котором разметка играет роль в семантике.
меня тоже это парило, пока я не начал писать на питоне 🙂
Ruslan
камрады, мне надо регать в БД подключение девайса, я по реляционной привычке сначала проверяю в одной коллекции, что девайс кошерный (т.е. ему разрешено подключение), а потом регаю его в другой коллекции... это нормальный подход или правильно делать по-другому?
Nick
Все)
наверно имеет смысл проверить что не касячит драйвер тогда сделай чтото вроде в консоли монги: var t1 = new Date(); var it = db.getCollection(ХХХ).find({}).limit(10000); var count = 0; it.forEach(function (item){count++;}); print(count); var t2 = new Date(); print(t2 - t1);
Petro
в IntelliShell (Studio3T) я могу это выплонить? Я пробую и оно вечно делает Executing....
yopp
Есть колекция, в которой хранятся документы с полем в котором base64, и ещё несколько нужных полей. Как можно быстро вытащить документы? По 300 шт тянут. Но сейчас 800ms занимает процесс получение.
Надо профилировать что именно занимает время. Десериализация bson в структуры языка может занимать ощутимое время. Второй момент как быстро выполняется сам запрос. Третий момент как далеко расположена монга.
Petro
А нет, исполнил он код. Результат: Count: 10000, Time: 318936
Oleg
Ребят, подскажите по индексам монги
Oleg
есть реплика сет
Oleg
надо делать как в доке: вырубать секондари ,делать индекс, потом включать?
Oleg
или просто если в бэкгрануде на примари сделать, все нормально сделаетсся без выключений
Oleg
?
Nick
А нет, исполнил он код. Результат: Count: 10000, Time: 318936
ну так лимит свой 300к наверн надо было выставить)
Ruslan
можно монгу заставить генерировать UUID в качестве идентификаторов?
Nick
да и сам запрос в файнд надо свой
Oleg
в коллекции конкретно ?
Slava
да
Slava
про бекграунд уже где-то выше обсуждали, что его лучше не использовать так как он может приложить бд и правильнее выводить реплику,стоить индекс и возвращать ее
yopp
можно монгу заставить генерировать UUID в качестве идентификаторов?
можно заставить бекенд передавать в монгу uuid
Ruslan
[2017-09-22 16:52:38,012] [provider] [DEBUG] fetch_one: query="{'device_uuid': 'test'}" [2017-09-22 16:52:38,018] [provider] [DEBUG] fetch_one: result="{'company_id': ObjectId('59b85631e1054ebf83005a36'), 'uuid': '59c5151b1c0a7a495b18c8ff', 'device_uuid': 'test'}"
Ruslan
связал запись устройства с записью компании, потом сделал выборку по устройству, в доке читал, что питон сразу подтягивает связанные документы... но что-то пошло не так
CC-BY-SA-4.0/Docker-ce30.0
Что это.
CC-BY-SA-4.0/Docker-ce30.0
DBRef
CC-BY-SA-4.0/Docker-ce30.0
Тогда да.
Ruslan
я так понимаю монго драйвер просто делает ещё запрос, когда дёргают я dereference
Ruslan
Ruslan
Смотрю через MongoDB Compass на это и думаю, чего же в DBRef undefined то?
Ruslan
(Pdb) p result['company_id'] <Future pending cb=[_chain_future.<locals>._call_check_cancel() at /usr/local/Cellar/python3/3.5.2_1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/asyncio/futures.py:431]>
Ruslan
а как документ то получить, на который ссылка сделана?
CC-BY-SA-4.0/Docker-ce30.0
db.dereference(dbref) какойнибудь.
Ruslan
в pdb строке ты видишь её результат
Ruslan
всё, разобрался
CC-BY-SA-4.0/Docker-ce30.0
Значит разрезолвить фьючу.
CC-BY-SA-4.0/Docker-ce30.0
У нас старая монга и драйвер, нет такой подливы.
Ruslan
я просто с асинхронщины дёргал, традиционно забыл await сделать
Ruslan
камрады, как искать по dbref? если в коллекции device есть документы с dbref на определённый company, возможно ли выгрести все device данного company? через что искать, через какую коллекцию?
yopp
По значению company_id в коллекции device, если я правильно скриншот почитал
yopp
Делаешь индекс по этому полю, а потом ищешь по значению эквивалентному нужной тебе company но в dbref нотации
Aleksandr
ребят если у меня есть документ в нем массив, и я хочу взять и достать все документы в элементах массива которых содержится поисковый запрос например буква F или другой набор символов, влоть до полного совпадения, как лучше напистать запрос?
Pasha
кажется, что тебе лучше изменить схему базы под свою задачу
Timur
Не полнотекстовый поиск, конечно. И из проблем: 1. По запросу "uery" документ со словом "query" найти не получится, но "quer" найдет. 2. Ну и при поиске нескольких слов с $in индекс будет использоваться только для первого слова (тут я могу соврать).
yopp
Ну ты открой документ и посмотри значение поля DBRef
Ruslan
открываю в компасе, смотрю...
Ruslan
всё как на скриншоте том
Ruslan
я так понимаю, пока индекс на это поле не построю, я не могу делать запросы по содержимому в ссылаемом документе
yopp
А. Компас не показывает json нотацию
yopp
Погоди. Ты что в и тоге хочешь?
Ruslan
у меня в девайсах есть поле с dbref на компанию, я хочу брать девайсы одной компании, указывая её идентификатор
Ruslan
в общем, разумнее взять pymodm
yopp
dbref это просто формат записи индентиыикатора документа.
yopp
Если ты хочешь выбрать девайсы одной компании тебе нужно сделать выборку по полю в котором у тебя хранится DBRef. Если бы ты хранил посто id компании, то выборка была бы по значению равному id компании. А так как у тебя DBRef то выборка должна быть по DBRef на эту компанию. Там разница по сути только в записи
yopp
Как запрашивать по dbref это вопрос к драйверу/odm
Ruslan
какой ORM для монго+asyncio посоветуете?
Ruslan
aiomongodel кто-нибудь использует?
P&P
кто нить работал с percona tokuDb, это такая монга но не от монги
Aleksey
а они разве жива ?
Aleksey
они вроде выскочили как чертик из табакерки а потом ни слуху ни духу
P&P
поменяли владельца как понял после "почтибанкротства"
P&P
я к чему справшиваю - фиг с ним с их фрактал индекс, нео у них энтерпрайзные фичи типа шифрования бесплатно в лицухе
P&P
хотя, конечно, ооогромные сомнения в стабильности, но в моём случае это терпимо если проблемы не убийственны
Gleb
зачем току для этого?
Anonymous
Господа, есть вопрос, пишу проект который будет наполнятся с других ресурсов, нужно придумать механизм который реализует углубленную проверку на дубли, который основывается на анализе текста и полнотекстовом поиске. Возможно кто-то сталикивался уже и есть какие-то готовые решения ?
Aleksey
копирастер ?
tenni
их монга бесплатная с этими фичами
Ruslan
Ребят привет. Нужна помощь в установке mongo на debian 8.
Denis
У тебя саджешны отключены в оптах апта походу
tenni
Ребят привет. Нужна помощь в установке mongo на debian 8.
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/
Ruslan
При установке sudo apt-get install -y mongodb-org выдает ошибку: The following packages have unmet dependencies: mongodb-org : Depends: mongodb-org-shell but it is not going to be installed Depends: mongodb-org-server but it is not going to be installed Depends: mongodb-org-mongos but it is not going to be installed Depends: mongodb-org-tools but it is not going to be installed E: Unable to correct problems, you have held broken packages. Что может быть?
tenni
apt-get install -f
Max
dpkg --get-selections | grep -v install