Евгений
в настройке кубика запрос поправить?
сортировка в запросе задается
Dmitriy
бывают коллекции без этого поля ) сам видел, если память не изменяет
теоретически конечно это возможно, но это явный обход рекомендаций монги: https://docs.mongodb.com/manual/core/document/#document-field-order и на это должны быть веские причины
Евгений
теоретически конечно это возможно, но это явный обход рекомендаций монги: https://docs.mongodb.com/manual/core/document/#document-field-order и на это должны быть веские причины
я же говорю, по глупости было сделано первый опыт работы с монгой несколько лет назад (не мой), делалось как в sql )
Dmitriy
в вашем случае проще исправить запросы чем "ломать" базу. дешевле выйдет
GSA
в настройке кубика запрос поправить?
В этом кубике нет возможности запрос править. С такой возможностью есть другие кубики, но хотелось использовать первый.
GSA
Буду пользовать кубики с запросом
GSA
Спасибо за советы!
Nick
бывают коллекции без этого поля ) сам видел, если память не изменяет
такое можно было сделать в старых версиях, при создании коллекции можно было указать, чтобы не создавался индекс по _id а бралось другое поле в качестве ключа, но сейчас такую опцию убрали и это поле обязательное
Nick
спасиб, глянем
Nick
лол
Nick
я про софт в котором создаете запросы в базе
GSA
Ну так в нём и создаю. Там есть возможность работы с бд.
Nick
а, вот оно как, сорян тогда
yopp
Vened
возможно, вопрос из тысячу раз отвеченных, но я столкнулся впервые и поиск в сети внятного ответа не даёт. есть репликасет из трёх реплик к каждой из них robo3t коннектится нормально но к сету, как именно к сету - не может. Причём дело не доходит даже до авторизации bindip на самих монгах удаленное подключение с этого адреса разрешает
Vened
в чём может быть проблема?
Vened
в логе robo3t следующее: 12:14:04 PM Info: Connecting to realty [Replica Set]hostname2:27017... 12:14:04 PM Info: Settings saved to: C:/Usersusername/.3T/robo-3t/1.3.1/robo3t.json 12:14:04 PM Info: Replica set's cached set name cleared. Using user entered set name. 12:14:04 PM Error: Establish connection failed. Authentication failed.. Connection: realty 12:14:09 PM Info: Settings saved to: C:/Users/username/.3T/robo-3t/1.3.1/robo3t.json
Ilya
День добрый, быстрый вопрос, как сделать поиск по базерегистронезависивый Какая-то опция или что-то еще То естья хочу добиться того, чтобы при запросе на find find({name : {$regex : 'test'}}) Мне выдавались результаты test Test 1_Test и так далее
RusaXXX
а как удалить коолекцию с именем через дефис? db.user-logs.drop() 2020-04-10T13:23:28.921+0000 E QUERY [js] ReferenceError: logs is not defined : @(shell):1:1
RusaXXX
> db["user-logs"].drop()
спс, пробовал без кавычек, думал почему не получается
Daniil
поэтому все согласно синтаксису js
RusaXXX
монгошелл это же JavaScript interface
да вот только вчера за нее сел и разбираюсь
Ilya
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp Флаг i
Спасибо, но как применить прямо в монге например, на сколько я понял в js коде
Daniil
Спасибо, но как применить прямо в монге например, на сколько я понял в js коде
https://docs.mongodb.com/manual/reference/operator/query/regex/ find({ name: { $regex: /test/i } })
Ilya
https://docs.mongodb.com/manual/reference/operator/query/regex/ find({ name: { $regex: /test/i } })
https://stackoverflow.com/questions/8246019/case-insensitive-search-in-mongo %)
yopp
День добрый, быстрый вопрос, как сделать поиск по базерегистронезависивый Какая-то опция или что-то еще То естья хочу добиться того, чтобы при запросе на find find({name : {$regex : 'test'}}) Мне выдавались результаты test Test 1_Test и так далее
https://docs.mongodb.com/manual/core/index-case-insensitive/#case-insensitive-indexes Для регистронезависимого поиска. А вот поиск без префикса по 1_Test это очень дорого. Индексом такой поиск не покроется и каждый раз будет необходимо всю коллекцию обходить. В лучшем случае поможет $text и текстовый индекс, если там словокосилка умеет именно такие случаи обрабатывать.
Melodeiro
Кто-нибудь пользовался kmongo с kotlinx.serialization? Как можно вообще такую ситуацию решить? Только через ObjectId?
Al
Всем привет! А можно ли в find запросе вернуть поле под каком то другим именем. Аналог как в mysql select field as myField from table
Al
В projection можно делать переименование
а как? в доках для find не нашел. Только убрать или оставить поле. Значит только через aggregate ?
Al
db.folders.aggregate([{$match: { _id: ObjectId("5e90dd9b441f352bf6174d3c"), deletedAt: null }}, { $project: { realParentId: "$parent" } }]).pretty();
Al
Только так?
Imran
Всем привет! Коллеги, как ставить count на _id вместо нативного ObjectId() ?
Imran
на mongoose нет api для этих целей?
yopp
Штатных нет. В монге попытка сделать инкрементальные айдишники будет даваться огромным количеством боли. А с вероятностью 98% они вам не нужны и решают только несуществующую косметическую задачу
Imran
А что за 2%? )
Андрей
Привет. Я создал модель. Создал 4 документа от нее. И вот я внес в модель еще одно поле. Что то может случится с другими четыремя документами плохого? Их нужно пересоздать, потому что модель обновила свою структуру?
Dmitriy
Привет. Я создал модель. Создал 4 документа от нее. И вот я внес в модель еще одно поле. Что то может случится с другими четыремя документами плохого? Их нужно пересоздать, потому что модель обновила свою структуру?
В предыдущих 4 документах не будет нового поля. Если его наличие критично для вашей логики, то стоит сделать миграцию с добавлением нового поля во все имеющиеся документы.
Гена
Доброе утро подскажите, если ли в монге функционал create user if not exists?
Vova
В принципе почитай про $setOnInsert
Vova
Работает с upsert: true, для запросов обновления
Гена
на update запросе или на find?
для файнда надо что если пользователя нет он его создавал а если есть то нет
Vova
для файнда надо что если пользователя нет он его создавал а если есть то нет
https://docs.mongodb.com/manual/reference/method/db.collection.findOneAndUpdate/ - опять же с использованием $setOnInsert
Гена
а как это может работать с созданием пользователя?
Vova
а как это может работать с созданием пользователя?
returnNewDocument: true и upsert: true, тогда оно найдёт юзера, если найдёт то upsert не сработает, если не найдёт - отработают все $setOnInsert, задавая поля для модельки юзера. Затем только после всех этих действий вернётся тебе документ из бд
Vitalii
День добрый. Подскажите пожалуйста как бы поискать в чем причина. Есть 3 нодовый replicaset r5a.large 2CPU 16 GiB RAM. У меня что то 500 элементов из 5000000 по 10-20 секунд ищет - при том что индексы есть. Куда можно копнуть?
Vitalii
Здравствуйте. А что в explain(executionStats:1) по этому запросу?
минуту - кажеться уже нашли кое что :)
RusaXXX
Подскажите а как в монге получить created_at поле из базы, а не серваком перебирать все записи
RusaXXX
нет такого поля по дефолту, это бизнес логика
нашел агрегацию, но теперь не понимаю как применить его с find
Nick
в чем задача?
RusaXXX
вывести отсортированные записи по дате, при этом поле даты нет базе но на странице должно быть
RusaXXX
нет в базе = невозможно
ну я же могу агрегацию сделать, и туда дописать дату , взяв ее из objectId
Nick
это некорректно, наличие даты в ид не должно использоваться для бизнес логики
Nick
вы можете одноразово вытащить эту дату и проставить всем документам в отедльное поле и использовать его в дальнейшем
RusaXXX
Мне нужно вывести дату создания этой записи, это логи
Nick
а после доработать ПО для простановки и использованию нового поля
RusaXXX
неважно для чего
странно, везде написано что для поля created_at не нужно создавать отдельное поле, а брать из objectId
Nick
ох уж эти "везде"
Nick
если вам нужно поле создания документа, то оно проставляется в момент создания в приложении, а не в базе и используется какоето время в ПО а не опять же в базе
RusaXXX
ох уж эти "везде"
ну с монгой второй день работаю, поэтому что в гуге выдает то и читаю.А в чем проблема брать дату создания из object_id?
Nick
в том что вы не контролируете это время и не знаете что оно значит
Nick
оно както кемто гдето проставляется и вы на это повлиять не можете даже если захотите
RusaXXX
ок, спс
yopp
ну с монгой второй день работаю, поэтому что в гуге выдает то и читаю.А в чем проблема брать дату создания из object_id?
В том что временной компонент там не для учёта времени, а для избежания коллизии между идентификаторами при распределённой генерации. Одноразово вытащить оттуда дату, понимая что там может быть всё что угодно и даты необходимо тщательно проверять — можно. Постоянно использовать не стоит из-за отсутствия каких-либо гарантий корректности временной отметки
yopp
Там проблемы уже на источнике времени начинаются. Даже определить какая временная зона использовались уже не будет возможным. Плюс они могут генерироваться на клиенте и на сервере одновременно и в зависимости от реализации bson источники могут быть разными