minone
Oleksii
а как _id из Object в int?
dnacd 🦜
а как _id из Object в int?
а как str может стать int?
Oleksii
а как str может стать int?
прямая/не прямая конвертация. но как я вижу, это либо хеш либо набор символов
dnacd 🦜
прямая/не прямая конвертация. но как я вижу, это либо хеш либо набор символов
дичь, заранее обьекту присваивай уникальный инт, если нужен инт
Oleksii
дичь, заранее обьекту присваивай уникальный инт, если нужен инт
в таком случае нужно делать касмотмный счетчик ?
NO WAR!
dnacd 🦜
NO WAR!
удачи)
Не понял сарказма, ну да ладно.
Максим
В js через parseInt
getIntegerValue функция называется
NO WAR!
getIntegerValue функция называется
Но можно и через parseInt
Just
parseInt юзают, еще Number()) Но вообще вопрос про монгу был, только контекст потеряли)
Just
а как _id из Object в int?
Никак, это буквоцифры
Oleksii
Никак, это буквоцифры
это закодированный long int
fλüggåɘnk∂€čhiœßøλ∫ên
это закодированный long int
http://mongodb.github.io/mongo-java-driver/3.12/javadoc/org/bson/types/ObjectId.html#hashCode() например
Just
это закодированный long int
а что за цель, что надо расшифровать ObjectId
Sergey
это закодированный long int
Вы уверены? Он формируется по частям, относительно машины на которой стоит
Oleksii
а что за цель, что надо расшифровать ObjectId
неправильно поставил себе задачу, потом понял, что у меня есть другой ид, по которому я уже буду работать
Sergey
Факт)
Пульните в меня докой по этому факту пожалуйста
fλüggåɘnk∂€čhiœßøλ∫ên
Sergey
Я не про лонг и инт)
Аа, понял, спасибо
🐽 Alex
Подскажите пожалуйста, как можно получить данные из БД, чтобы с некоторой вероятностью был выбран более подходящий вариант? То есть допустим в бд хранится такие документы { "preferredIds: [1, 2, 3] } { "preferredIds: [1, 4, 5] } { "preferredIds: [2, 4, 6] } ... Как сделать чтобы был поиск по find() и каждый раз БД выдавала документы с ближайшим совпадение по введенному массиву НО ВСЕГДА РАЗНЫЕ Задача: сделать систему предпочтений чтобы эти предпочтения не 100% влияли на исход но были значимыми при выборе контента
Антон
всем привет, а есть возможность изменить порядок элементов в коллекции? чтобы не сортировать при выдаче на апи, т.к. элементов многовато
Антон
Сортировать же можно в базе
значит сортировать и мержить обратно?
Tony
Зачем мержить то?
Антон
чтобы каждый раз не сортировать при получении по апи
Tony
Делаешь запрос с сортировкой и все
Tony
И получаешь сразу отсортированое
Антон
проблема в том что записей много, нужно предотсортировать, в этом вопрос)
Tony
проблема в том что записей много, нужно предотсортировать, в этом вопрос)
Создай индекс для полей по которым сортируешь и сортировка будет быстрой. Тебя по идее вообще не должно волновать как данные в базе хранятся
Антон
Создай индекс для полей по которым сортируешь и сортировка будет быстрой. Тебя по идее вообще не должно волновать как данные в базе хранятся
там ещё сортировка замароченная ппц( нужно в определенном порядке в зависимости от некоторых полей это делать, поэтому я подумал, что можно раз в пару дней сортировать, а выдавать всегда через просто find
J
Почему не ищет?
J
Коллекция Languages2 называется
Tony
find( {Languages: "немецкий"} )
J
find( {Languages: "немецкий"} )
Спасибо! 👍🏻 🥲 Мат. Я уже несколько дней во всю эту херню херачу. Пачему!!!!
Tony
Спасибо! 👍🏻 🥲 Мат. Я уже несколько дней во всю эту херню херачу. Пачему!!!!
Хз, просто открыл доку и скопипастил пример оттуда)
J
А ещё, можно вернуть только цифры 3,4,5 без _id
J
В другой бд, у студентов числовые значения в поле Язык. Таким образом я ищу все значения с немецким (3,4,5), и потом отбираю студентов со значениями 3,4,5 в поле язык Т.е. ищу тех кто учит немецкий
J
Но он что то ругается.
califorr
Но он что то ругается.
Мне кажется, что проблема в том, что вы закрыли запрос после id1, наверное, надо через запятую все айдишки прописать в скобках, каждую отдельно, а потом закрыть круглой
Watch
Всем привет, я ранее с nosql дела не имел, задам немного странный вопрос. Есть задача хранить таблицу типа экселя с столбцами а..zz и строками 1...100000 Как правильнее поступить, хранить прямо кучу ключей вида а1:значение1, а2:значение2 Или разбивать это на массив типа А:[значение 1,значение 2]?
Yaroslav
Всем привет, я ранее с nosql дела не имел, задам немного странный вопрос. Есть задача хранить таблицу типа экселя с столбцами а..zz и строками 1...100000 Как правильнее поступить, хранить прямо кучу ключей вида а1:значение1, а2:значение2 Или разбивать это на массив типа А:[значение 1,значение 2]?
Смотря как часто будешь данные достовать. Если нудно специфично тпотполю выборку делать, то лучше хранить ключ- значение, а если быстро сохранить промежуточный результат без дальнейшее манипуляции то можно массив
Watch
Выборка по полю не нужна, нужно разом выгружать и загружать весь документ. Фактически я и пытаюсь засунуть таблицу в монгу. Подсмотрел как сделано в гугл таблицах, в апи выдают именно в формате объекта { AB123: значение ячейки }
Watch
использовать реляционную базу данных)
Таблиц может быть сотня, в одной используется только столбец а, во второй от а до d, в десятой от а до bb Можно попытаться через eav-подобную штуку склеить всю эту информацию в кучу, но сдается мне, все же здесь json-объект лучше подойдет.
Максим
Ребят, у меня есть массив подмассивов. И мне нужно применить к каждому подмассиву $in условие. Как мне лучше это сделать? [ [ { _id: new ObjectId("61f3b2db9325dfc59e00cb44") }, { _id: new ObjectId("61f3b3099325dfc59e00cb48") } ], [ { _id: new ObjectId("61f408a45b67e20aba22b91d") } ] ]
Максим
можно как-то облегчить этот код с помощью callback который передастся в find?
Максим
$and: [{tagsID: {$in: searchIDs[0]}}, {tagsID: {$in: searchIDs[1]}}]
Alexander
Всем привет. Есть коллекция foo с уникальнвм индксом на поле cardNo. Выполняю параллельно, в несколько потоков db.foo.updateOne({cardNo:1}, {cardName: 'My card'}, {upsert: 1}) и db.foo.remove({}) все работает без ошибок, т.е updateOne отрабатывает атомарно, делает вставку если записи с cardNo нет, или же update если такая запись есть. Пытаюсь сделать все тоэе самое, но с использованием findAndUpdate вместо updateOne, так как он возвращает результат вставки / обновления, но несмотря на то что заявлено что findAndUpdate атомарный, при заупске в несколько потоков я получают duplicate key error. Есть идеи?
Ivan
как можно соединить .distinct с курсором? .distinct должен подходить, но база большая и отваливается по размеру: distinct too big, 16mb cap
Alexander
как можно соединить .distinct с курсором? .distinct должен подходить, но база большая и отваливается по размеру: distinct too big, 16mb cap
проще всего создать уникальный индекс на этой коллекции и distinct не нужен будет, либо еще одну коллекцию рядом с существующей и в ней уже уникальный индекс, пусть приложение пишет в обе, зато быстрый доступ будет к уникальный значениям
Yura
возможно странный вопрос, но какой лучший тип EC2 инстансов ( r6g, m5 etc) для монги на амазоне?
Aleksey
Добрый день. Можете подсказать, есть ли возможность в версии 4.4.12 в projection как-то вытащить поля, имена которых начинаются с доллара? { "event": "login", "properties": { "$user_id": 333 } } мне нужно вывести значение этого $user_id
yopp
Если сработает, что через update aggregate pipeline и переименуйте
yopp
Либо на 5.0, там есть $get/$setFields
Aleksey
Не уверен, но попробуйте через $objectToArray на properties
Да, я это сейчас пробую как раз, но не очень понимаю, как должна конструкция фильтрации выглядеть Такой вариант у меня не выходит , { "$project": { "result": { "$filter": { "input": {"$objectToArray": "$properties"}, "cond": { "$eq": ["$$this.k", "$user_id"] } } } } }
Aleksey
Либо на 5.0, там есть $get/$setFields
Да, видел, но у меня, к сожалению, 4.4
yopp
Если вам постоянно надо, то лучше поменять схему
Aleksey
Если вам постоянно надо, то лучше поменять схему
Дело в том, что схему я не контроллирую толком, но контроллирую загрузку данных, могу, в принципе, на этапе инсерта подменить все поля с долларами на поля без долларов.
Aleksey
благодарю)
.
Добрый вечер! Подскажите пожалуйста, как можно записывать каждый раз уникальное значение в коллекцию? Я делаю привязку по серийному номеру жесткого диска и при попытке добавить новое значение, оно просто не добавляется. Скорее всего в связи с одинаковым айди. Так-вот, как можно уникализировать данное айди?
.
Хорошо, я просто ранее не использовал MongoDB и извините, если задаю такие глупые вопросы. (Так-как скорее всего их можно найти в гугле)
.
Так-же еще один вопрос, почему при попытке проверки наличия записи в MongoDB, он выдает всегда сообщение о том, что его нет. Хотя оно и есть. На втором скрине вы можете увидеть, что первым значением идет проверка реально существующего значения, а вторым произвольного. На третьем скрине показана запись, говорящая о том, что запись имеется