Nick
Точнее монгодб это отдельно запущенное приложение
Defragmented
Понял, спасибо (надо какое-то слово определить для дб которые требуют отдельного приложения и которые работают просто как библиотека)
Nick
Embedded
Defragmented
и монго не embedded(встроенная) потому что отдельное приложение, правильно понял?
Nick
Оно просто не встраиваемое
Nick
Хотя как всегда можно извращаться и встроить и ее куданить. Код открыт
️lefrotite
if flows.find_one({{'id': flowid}, { '$or': [{'settings': {'pin': {'$exists': False}}}, {'settings': {'pin': False}}]}}) is not None:
️lefrotite
Что-то не так, ругается
️lefrotite
Что-то с этой or связкой...
Yurii
find_one({'id': flowid, '$or': [{'settings.pin': {'$exists': False}}, {'settings.pin': False}]})
️lefrotite
Благодарю
️lefrotite
А как можно в объекте изменить определенный элемент? У меня методом $SET весь объект перезаписывается
Yurii
Ну вообще-то должен только само свойство, которое ты передаешь в сет, но надо пример для большей наглядности.
️lefrotite
Есть в документе объект {settings:{type:True}} Затем я выполняю flows.update_one({условие},{$set:{settings:{pin:True}}) и type затирается, то-есть, документ перезаписывается
Vlad
Попробуй flows.update_one({условие},{$set:{"settings.pin":True}})
️lefrotite
Попробуй flows.update_one({условие},{$set:{"settings.pin":True}})
Очень странно. Для pin сработало, а такой же в точности код для type перезаписывает объект
️lefrotite
flows.update_one({'id':flowid},{'$set':{'settings.type':'public'}})
️lefrotite
Может баг какой-то
️lefrotite
Оказалось, баг. Перезапустил еще раз и заработало. Благодарю
Dmitry
ребят
Dmitry
всем привет
Dmitry
я новичек, хочу добавить в схему одно поле price: integer, я сначала хотел писать миграционный скрипт, но потом просто добавил в схему поле и перезапустил сервер и уже у существующих рекордов это поле появилось, это нормально? ps: mongoose
Dmitry
когда запрашиваешь с сервера показывает price: 0, когда в консоли монги - этого поля нет
Dmitry
написал так db.games.find({}).forEach(game => { game.price = 0; db.games.save(game); })
Nick
почитайте доки к монгусу по поводу дефолтных значений полей
Nick
и да где мемасик?)
Nick
ну так ты добавил его в сехме на сервере, а не в схеме на бд. это те не sql где нужно явно создать колонку в базе
Nick
в данном случае пр выборке из базы будет подставлять дефолтное значение для поля которое ты укжешь, если не укажешь то дефолтное для соотв типа
Nick
но в само й базе ничего при этом не изменится
Nick
а когда начнешь заливать новые данные, то тогда и начнет появляться поле
Dmitry
ну а вот скрипт для выполнения в терминале я написал, он же реально добавляет всё?
Dmitry
ну всмысле, я проверил, - да
Dmitry
@yatoba
Nick
я бы сделал обыный апдейте
Nick
про сейв хз если честн
Nickolay
я не понимаю вопроса) обнови всю коллекцию по селектору {‘price’:{‘$exists’:False}} и будет как ты ожидаешь
Dmitry
ок, спасибо, первый раз просто делаю
Dmitry
ручки дрожат
Nick
чтоб руки не дрожали делаешь бекап, разворачиваешь на тестовом стенде и играешься там
Nick
ну лиил хотя бы просто имитируешь свою базу десятком записей и на них тренишься
Anonymous
всем привет
Anonymous
комрады, подскажите плз два вопроса 1) где можно качнуть норм видеокурсы на русском по mongodb?
Anonymous
2) https://ru.stackoverflow.com/questions/794971/%D0%9A%D0%B0%D0%BA-%D0%B2-mongodb-%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C-%D0%B4%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B5%D0%B5-%D0%BF%D0%BE%D0%BB%D0%B5-%D0%B2-%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B0%D1%85-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0
Anonymous
если не лом )
Nickolay
комрады, подскажите плз два вопроса 1) где можно качнуть норм видеокурсы на русском по mongodb?
Курсы хорошие на MongoDB university, но на ангийском. Возможно сможете найти с субтитрами - так будет проще
Anonymous
Курсы хорошие на MongoDB university, но на ангийском. Возможно сможете найти с субтитрами - так будет проще
Спасибо, гляну. А на русском? в ютубике есть на русском, просто не хочу время терять выискивая среди шлака.
Anonymous
тут можно аггрегацию использовать, если вам критично на стороне базы это сделать конечно
1. какой конкретно командой из агрегации? 2. А как это сделать не "на стороне базы" ?
Nickolay
не видел никогда на русском ничего такого, разве что отдельные выступления на конференциях, но это уже не курсы
Nickolay
1. какой конкретно командой из агрегации? 2. А как это сделать не "на стороне базы" ?
1. $project 2. Вы можете написать скрипт, который просто обновит коллекцию
Anonymous
1. $project 2. Вы можете написать скрипт, который просто обновит коллекцию
1. ок, покручу. 2. ну скрипт-то всё равно обращается к базе и выполняет ту же самую команду "на стороне базы"
Nickolay
ну вам виднее как делать, приходите к нам еще)
Anonymous
хорошоу, спасибос _)
Nickolay
хорошоу, спасибос _)
для наглядности еще пример начальная коллекция q: /* 1 */ { "_id" : ObjectId("5aa2c9b5faf432cbff0ac65b"), "a" : { "b" : "c" }, "d" : { "e" : "f" } } набор команд агрегации db.getCollection('q').aggregate([{'$match':{}}, {'$project':{'a.b':true, 'a.e':'$a.b','_id':true}}, {'$out':'q'}]) После операции агрегации в коллекции q будет: { "_id" : ObjectId("5aa2c9b5faf432cbff0ac65b"), "a" : { "b" : "c", "e" : "c" } } Для вашего примера нужно немного подредактировать
Anonymous
спасибо, покумекаю..
Anonymous
А я же могу отредактировать документ, изменив значение _id?
Anonymous
При соблюдении ограничений индекса, конечно.
Anonymous
Или значение устанавливается навсегда?
yopp
_id невозможно изменить
Nick
Или значение устанавливается навсегда?
ничего не мешает вам удалить старый док и вставить новый с новым _id
Николаич
Чувак, Щас вечер субботы. Ты серьезно?
Nickolay
Через точку укажи, ты неправильно селектор указываешь, погляди как в документации написано
Nickolay
Поле.поле.поле:значение
Nickolay
А не поле:поле:поле
yopp
Read only на сутки за хамство.
Александр 🌲🙏🏽
Ребята, подскажите пожалуйста.
Александр 🌲🙏🏽
Вот у меня есть коллекция, в ней документы, в которых в каждом есть два массива айдишников.
Александр 🌲🙏🏽
Где бы хранить соответствующие названия для этих айдишников? Отдельные коллекции создавать и делать через Mongoose refs?
Александр 🌲🙏🏽
Ну то есть джоинов же здесь нет.
Александр 🌲🙏🏽
А мне при запросе соответственно надо показывать именно названия.
Nickolay
Либо dbref, либо отдельную коллекцию, да. Джоины в каком-то смысле есть но они тяжёлые очень
Александр 🌲🙏🏽
Просто хранить в массиве не только айдишники, а объекты, в которых в каждом и айди и название — думаю излишек.
Nickolay
Почему? Вы же так и будете запрашивать
Александр 🌲🙏🏽
Ну они же будут очень сильно дублироваться.
Александр 🌲🙏🏽
Мультимиллионироваться. =)
Александр 🌲🙏🏽
Ну то есть если говорить предметно — это массив производственных факторов.
yopp
[{_id: oid, name: ”foo"},..., {}]
Александр 🌲🙏🏽
[{_id: oid, name: ”foo"},..., {}]
Ну да, это первое, что напрашивается.