Nick
ну посути зачем фулл текст? в случаи чего посмотреть кто что менял и возможно откатить данные
А какие критерии для поиска будете использовать? Это в будущем может очень сильно повлиять на работоспособность
Roman
имя таблицы ид
Roman
дата
Roman
база вся в мускуле
Nick
я спрашиваю о другом, вы уже наметили как будут выглядеть события и какие критерии для поиска будете использовать? из опыта при работе с логами всегда есть необходимость поискать рендомную фразу по логам, или опять же вычленить часть строки и сделать группировку по ней - вот это все в монге будет очень больно
yopp
Поиск по тексту везде очень больно.
Михаил
Подскажите, есть у кого ссЫлка на чат разработчиков 1С ?
Nklya
Alexey
Всем привет, пробую установить mongo. Возникла следующая проблема - на скрине. Что делал:
Alexey
Переменные среды установил, монго в следующей папке c/mongodb/bin => mongo.exe и тд
Alexey
Denis
Через локалхост коннектишся?
Alexey
ну, да, видимо) - 27017
Alexey
а так не надо? мне просто в новинку вся эта тема - могу где-то по незнанию нехило так затупить
Alexey
пока ничем) я думал я этой командой что-то вроде инициализации должен провести, ну попробовать создать базу (видимо к которой можно обратиться по 27017 порту)
Alexey
может у тебя есть чтиво какое актуальное для чайника по mongo? ну чтоб я тут особо внимания не требовал)
Alexey
Denis
Почитай документашку по монге https://docs.mongodb.com/tutorials/connect-to-mongodb-shell/
Denis
Тебе нужен mongo-client
Alexey
ок, спасибо, буду изучать
vitalii
Парни , кто поможет , а то не пойму немного . Сущность пользователя содержит базовые поля (имя и пр.) Сущность сообщения содержит senderId и receiverId (id пользователей), а также тело сообщения. Создать роут, который возвращает всех пользователей, с которыми общался пользователь с данным id.find().or([{ senderId: 0 }, { receiverId: 0 }]) .then(message=> { а тут искать в пользователях эти id ? })
Nick
Парни , кто поможет , а то не пойму немного . Сущность пользователя содержит базовые поля (имя и пр.) Сущность сообщения содержит senderId и receiverId (id пользователей), а также тело сообщения. Создать роут, который возвращает всех пользователей, с которыми общался пользователь с данным id.find().or([{ senderId: 0 }, { receiverId: 0 }]) .then(message=> { а тут искать в пользователях эти id ? })
сейчас будет не упрек, а пожелание. видимо полное отсувие опыта работы с данными, поэтому предлагаю сначала реализовать все в коде, чтобы понять что будет делать база для получения такого же результата. а потом уже эти стадии оформить в виде запроса к бд, а то без этого понимания вы даже не сможете правильно выбрать что использовать из возможностей бд. вообще ваш случай легко в монге решается через aggregation framework
Игорь
Господа только начинаю знакомиться с монгой. Подскажите пожалуйста по организации модели. Мне по сути нужно хранить заказы, где указан user, описание заказа, так же в заказе будут товары количество каждого и цена. И еще список где будут юзеры и некоторые поля. Я так полагаю мне нужны будут коллекции users orders items. Схема orders будет выглядеть что-то типа { _id:'', order_name:'', some_fields:..... .... created_by: ссылка_на_user, items: [{item:ссылка_на_item,count:'2',price:'11',}], storages:[{storage:ссылка_на_storage,count:1}] } Я просто прочитал что типа монга не очень хорошо работает с ссылками на другие документы. Или я что-то не понял?
Nick
имитация джойна делается только через lookup, как следствие если вам надо много джойнов в классической sql модели, то лучше бы посмотреть в сторону sql
Nick
и в монге нет понятия "ссылки", это лишь рекомендованный способ задать ссылку, вся механика по вытаскиванию связанного объекта будет лежать на вас, ну или на драйвере
Nick
да
Игорь
Понял, спасибо
Oleg
мы пользовались DbRef
Oleg
под копотом в драйвере по сути еще 1 query отрабатывает
Oleg
ну или столько сколько рефов будет
Olexii
Коллеги, подскажите, имеется GeoJson, типа Polygon, нужно проверить что другой GeoJson (тип Point), попадает в выше упомянутый полигон монга 3.4
Olexii
корректно ли вообще сравнивать Point && Polygon?
Olexii
сейчас мой запрос выглядит так {'geoJson':{$geoIntersects:{$geometry:{'type':'Point', 'coordinates':[30.5240501,50.4501071]}}}}
Olexii
и ничего не находит
как можно вытащить все елементы с колекцыи? find() не работает только findOne
Почему не работает?
работает только андефайнд
Mikhail
Ну потому что это массив будет
да
Mikhail
да
Как ты собираешься читать поле из массива?
как выводить масивом?
Циклом
также андефейн
Mikhail
также андефейн
Значит ты делаешь что-то неправильно
Nick
также андефейн
как вы это делаете?
Михаил Макарычев
Ну а просто console.log(organizarion) что выводит?
Mikhail
Какой-то странный цикл))
Михаил Макарычев
Стоп. Что это вообще такое? Что в переменной query?
Михаил Макарычев
undefined
А в query что?
А в query что?
та я пробовал записовать в квери
но и без квери андеф
Михаил Макарычев
та я пробовал записовать в квери
Идите в @nodejs_ru, но будьте готовы, что вас там тапками закидают
спасибо решилось
🖤
Ребят, подскажите такую штуку. Есть поле данных, в монге, которое, как мне кажется, должно быть массивом опциональных объектов вида {key1: val1, key2: val2}. Как такое прописать в монге, и самое главное - как потом сохранять в такое поле, если приходит просто объект вида ключ:значение ?
Oleg
Какие индексы должны быть при таком запросе? db.aggregate([ { "$match": {operation: 100, 'credentials.random': true} }, { "$project": { "y": {"$year": "$created_at"}, "m": {"$month": "$created_at"}, "d": {"$dayOfMonth": "$created_at"}, "h": {"$hour": "$created_at"}, "value": 1 } }, { "$group": { "_id": {"year": "$y", "month": "$m", "day": "$d", "hour": "$h"}, "total": {"$sum": "$value"} } }, {$sort: {_id: -1}}, {$limit: 1} ]) Сейчас вот такие:
yopp
Третий сверху покрывает указанный запрос
Oleg
Третий сверху покрывает указанный запрос
Тогда почему запрос выполняется долго?
yopp
Вероятнее всего из-за количества документов которые попадают под это конкретное условие
yopp
https://docs.mongodb.com/manual/reference/method/db.collection.aggregate/#return-information-on-aggregation-pipeline-operation
yopp
Учитывая что вы возвращаете только один элемент группы, вы можете уменьшить выборку сделав два запроса: выбрав самую последнюю дату, а потом сделав по ней агрегацию
yopp
https://hastebin.com/elarucoguz.bash
А какой версии монга?
yopp
Попробуйте тот-же самый запрос на девелоперской машине с 3.6. Там больше информации о выполнении агрегационных запросов в explain
yopp
А сколько всего документов в коллекции?
yopp
У вас, кстати, уже есть даже индекс с created at. Так что лучше сначала найти максимальную дату, а потом уже по ней агрегировать. Меньше данных в выборке, быстрее будет.
yopp
Можно ещё убрать project
yopp
Положив конверсию даты в group
yopp
Но это надо проверять,возможно сокращение размера документа до групиовки тут помогает