Semyon V
а как правильно опрашивать массив сабдоков на модели в typegoose?
𝒜𝓃
Привет, ребят, нужна срочная помощь
𝒜𝓃
2021-06-05T09:25:28.167+0000 I CONTROL [main] ***** SERVER RESTARTED ***** 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] MongoDB starting : pid=3195 port=27017 dbpath=/var/lib/mongodb 64-bit host=cashberry-sql 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] db version v3.6.8 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] git version: 8e540c0b6db93ce994cc548f000900bdc740f80a 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.1.1f 31 Mar 2020 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] allocator: tcmalloc 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] modules: none 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] build environment: 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] distarch: x86_64 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] target_arch: x86_64 2021-06-05T09:25:28.179+0000 I CONTROL [initandlisten] options: { config: "/etc/mongodb.conf", net: { bindIp: "127.0.0.1,0.0.0.0", unixDomainSocket: { pathPrefix: "/run/mongodb" } }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongodb.log" } } 2021-06-05T09:25:28.179+0000 W - [initandlisten] Detected unclean shutdown - /var/lib/mongodb/mongod.lock is not empty. 2021-06-05T09:25:28.180+0000 I - [initandlisten] Detected data files in /var/lib/mongodb created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 2021-06-05T09:25:28.180+0000 W STORAGE [initandlisten] Recovering data from the last clean checkpoint. 2021-06-05T09:25:28.180+0000 I STORAGE [initandlisten] 2021-06-05T09:25:28.180+0000 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2021-06-05T09:25:28.180+0000 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2021-06-05T09:25:28.180+0000 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=3442M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),cache_cursors=false,compatibility=(release="3.0",require_max="3.0"),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),statistics_log=(wait=0),verbose=(recovery_progress), 2021-06-05T09:25:29.640+0000 I STORAGE [initandlisten] WiredTiger message [1622885129:640130][3195:0x7f0029620ac0], txn-recover: Main recovery loop: starting at 68/256 2021-06-05T09:25:29.641+0000 I STORAGE [initandlisten] WiredTiger message [1622885129:641069][3195:0x7f0029620ac0], txn-recover: Recovering log 68 through 69 2021-06-05T09:25:29.753+0000 I STORAGE [initandlisten] WiredTiger message [1622885129:753915][3195:0x7f0029620ac0], txn-recover: Recovering log 69 through 69 2021-06-05T09:25:29.848+0000 I STORAGE [initandlisten] WiredTiger message [1622885129:848335][3195:0x7f0029620ac0], txn-recover: Set global recovery timestamp: 0 2021-06-05T09:25:30.997+0000 E STORAGE [initandlisten] WiredTiger error (1) [1622885130:997197][3195:0x7f0029620ac0], file:index-170--2023552298446409862.wt, WT_SESSION.open_cursor: /var/lib/mongodb/index-170--2023552298446409862.wt: handle-open: open: Operation not permitted 2021-06-05T09:25:30.997+0000 F - [initandlisten] Invariant failure: ret resulted in status UnknownError: 1: Operation not permitted at src/mongo/db/storage/wiredtiger/wiredtiger_session_cache.cpp 115 2021-06-05T09:25:30.997+0000 F - [initandlisten] ***aborting after invariant() failure
𝒜𝓃
Не старутет
𝒜𝓃
Chmod 777 папке с базой сделал
𝒜𝓃
--repair тоже, не помогло
Bogdan
Привет, есть хорошие статьи "как запустить и настроить шард серверы для монги"? Кроме офф документации.
yopp
Chmod 777 папке с базой сделал
Проверьте что под монго-пользователем вы действительно можете открывать указанный файл
Se
Подскажите, пожалуйста, через что делать запросы такого плана? Есть коллекция Задачи. Надо их отображать в одном списке в следующем порядке: 1) Сначала срочные. 2) Далее невыполненные. 3) Далее остатки с сортировкой по дате от недавних до старых. Попробовал так: vtodos = db.vtodo.find({'$or': [ {"user": user, 'next_time': {'$lt': now}}.sort( [("completed", 1), ("is_project", -1)]), {"user": user, 'completed': None}.sort( [("is_project", -1)]), {"user": user}.sort( [("completed", -1), ("is_project", -1)]), ]}) Но оказалось, что сортировку так внутри запроса нельзя применять.
ᅠEmil 🇦🇿
ЗДравствуйте, такая штука. Меняю в форе баланс пользователей, и там может в форе один и тот же юзер быть несколько раз. Но когда я меняю значение второй раз, он прибавляет не к новому значению, а к изначальному, которое было до фора SomeArray.forEach(async (winner) => { user = await User.findOne({ ID: lot.players[winner] }).exec() user.withdrawalB = ( user.withdrawalB + parseFloat(prize) ).toFixed(2) await user.save() })
Ilya
ты const не пропустил случаем?
ᅠEmil 🇦🇿
ᅠEmil 🇦🇿
Хм ща попробую так
Неа, не помогло
Ilya
код?
Ilya
ну и посмотри какого юзера тебе бд возвращает
ᅠEmil 🇦🇿
ну и посмотри какого юзера тебе бд возвращает
Он возвращает верного, но прибавляет он значение к старому значению, а не к изменённому
ᅠEmil 🇦🇿
winnersSet.forEach(async (winner) => { const user = await User.findOne({ ID: lot.players[winner] }).exec() user.withdrawalB = ( user.withdrawalB + parseFloat(prize) ).toFixed(2) await user.save() })
Ilya
ну посмотри какое значение ты прибавить пытаешься
Ilya
а стоп, зачем toFixed?
ᅠEmil 🇦🇿
а стоп, зачем toFixed?
Округление до 2х знаков
Ilya
так оно в строку кастует после этого
ᅠEmil 🇦🇿
так оно в строку кастует после этого
Нет же. В базе остаётся также как число
ᅠEmil 🇦🇿
Когда 2 раза фор вызывается то он прибавляет верно
ᅠEmil 🇦🇿
Но когда 1 и тот же юзер в одном форе, ошибка какая-то
Ilya
у тебя там случаем ниже нет ещё кода?
ᅠEmil 🇦🇿
Возможно там что-то с async, но я хз что
ᅠEmil 🇦🇿
у тебя там случаем ниже нет ещё кода?
Есть, но базу я дальше не вызывал и не менял ничего оттуда. Вернее не с базы не меняю, а с User не меняю
Ilya
я бы это вообще на updateMany заменил
Ilya
одним запросом можно сделать
ᅠEmil 🇦🇿
Daniil
А можно как-то это исправить?
for…of использовать например
ᅠEmil 🇦🇿
Ilya
я поэтому и спрашивал, а есть ли у него код ниже, надо было сразу предложить Promise.all + .map
Daniil
я поэтому и спрашивал, а есть ли у него код ниже, надо было сразу предложить Promise.all + .map
Это запустит запросы параллельно и тоже может неверный результат получаться
Ilya
Используйте $inc https://docs.mongodb.com/manual/reference/operator/update/inc/
и такой вариант я ему тоже предлагал
Alexander
Вот так: `{$eq: ["_id", "$$cityy1"]}` Я с этим тоже пропарился...
Alexander
А, ну даже и не так. Я пропустил.
Alexander
Смотри на $expr.
Alex
с ним тоже делал
Alex
match -> expr -> eq = тоже самое
Alexander
Ну вот вариант в первом луукапе выглядит верным.
Alex
хотя нет, слава богу.. не работают только вложенные pipeline
Alexander Cheprasov
Не тот скрин
Alexander Cheprasov
Всем привет! В чем ошибка в данном запросе?
Alexander Cheprasov
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/#specify-multiple-join-conditions-with--lookup делаю по примеру как в документации
Alexander Cheprasov
Получается вот такая модель, нужно получить юзера у которых id соответствуют
Nick
Всем привет! В чем ошибка в данном запросе?
скобку потеряли на закрытие $match
Alexander Cheprasov
блин, спасибо... 7 часов изучаю сегодня aggregate вот так затупил... Извините 😣
Igor
блин, спасибо... 7 часов изучаю сегодня aggregate вот так затупил... Извините 😣
https://nosqlbooster.com/ попробуй эту тулзу, для изучения бесплатной версии достаточно, а подобных ошибок меньше делать будешь
Sinaver
подскажите, есть массив айдишников которые нужно удалить из коллекции, deleteMany поможет или лучше сделать forEach() и удалять с deleteOne на каждой итерации
Главный
Может кто подсказать Делаю запрос к базе - но оно каждый раз создает базу test и там создает коллекцию что я делаю не так? https://prnt.sc/14karmf
Главный
я так понимаю это какое то умолчание бд тест - не должно оно создавать ту базу которая используется?
Sinaver
а ты как то не так запускаешь сервер
Sinaver
дебажить нужно
Sinaver
я так понимаю это какое то умолчание бд тест - не должно оно создавать ту базу которая используется?
тогда сразу поймешь что не так, могу ошибаться но как будто порядок мидлвейров не правильный
Главный
тогда сразу поймешь что не так, могу ошибаться но как будто порядок мидлвейров не правильный
ну я запускаю и перехожу по ссылке - там создается статья блога /add-blog вот тут - он создается, но всегда в базе test/Blog
Главный
вопрос в том что я пытаюсь подключится к другой базе - вот щас руками даже сделал базу а пишет все равно в тест)
Главный
Ну решение нашел - толкьо почему не ясно //mongoose.connect(`${MongoAddress}:${MongoPort}/${Base}`, {useNewUrlParser: true}) mongoose.connect('mongodb://localhost:27017/mongoBlog', {useNewUrlParser: true})
Главный
если убрать переменные то все ок - почему не понятно, буду пробовать по одной убирать
Sinaver
вопрос в том что я пытаюсь подключится к другой базе - вот щас руками даже сделал базу а пишет все равно в тест)
mongoose.set('useUnifiedTopology', true); ещё вот это поставь https://www.tutorialspoint.com/mongodb/mongodb_drop_database.htm посмотри здесь примеры, много толкового контента, а то я так не писал и в добавок весь код не знаю)
Sinaver
но на счёт моонгуса, советую конечно же документацию почитать) но и посмотреть MERN уроки Минина, он тоже везде использует mongoose
Sinaver
спасибо почитаю
если с английским туго как у меня, DeepL хорошо переводит по смыслу
Sinaver
английский норм
тогда по легче будет)
Главный
если с английским туго как у меня, DeepL хорошо переводит по смыслу
проблема со скоропечатаньем - сильно быстро пишу Ошибку нашел 27071 порт а нужно было 27017 по идее не могло соединится и соединяло с базой тест автоматически
Sergey
LДобрый вечер. Есть коллекция элементов которая описывается схемой const MessageSchema = new mongoose.Schema({ from: { ref: "User", type: ObjectId }, to: { ref: "User", type: ObjectId }, messages: [ { author: { ref: "User", type: ObjectId }, liked: { type: Boolean, default: false }, }, ], } );
Sergey
Вопрос как изменить поле liked в одном из сообщений
Sergey
по роуту прилетает id документа и id сообщения