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
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 🇦🇿
Herman
ᅠEmil 🇦🇿
Ilya
код?
Ilya
ну и посмотри какого юзера тебе бд возвращает
ᅠ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?
Ilya
так оно в строку кастует после этого
ᅠEmil 🇦🇿
Когда 2 раза фор вызывается то он прибавляет верно
ᅠEmil 🇦🇿
Но когда 1 и тот же юзер в одном форе, ошибка какая-то
Ilya
у тебя там случаем ниже нет ещё кода?
ᅠEmil 🇦🇿
Возможно там что-то с async, но я хз что
Ilya
я бы это вообще на updateMany заменил
Ilya
одним запросом можно сделать
Daniil
ᅠEmil 🇦🇿
ᅠEmil 🇦🇿
Ilya
я поэтому и спрашивал, а есть ли у него код ниже, надо было сразу предложить Promise.all + .map
Daniil
yopp
Ilya
Ilya
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)]), ]})
Но оказалось, что сортировку так внутри запроса нельзя применять.
Пока что в python получается проще всего решить. Правда пагинацию не понятно как тогда на уровне бд реализовать
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
Alexander Cheprasov
блин, спасибо...
7 часов изучаю сегодня aggregate
вот так затупил...
Извините 😣
Alexander Cheprasov
Sinaver
подскажите, есть массив айдишников которые нужно удалить из коллекции, deleteMany поможет или лучше сделать forEach() и удалять с deleteOne на каждой итерации
Главный
Может кто подсказать
Делаю запрос к базе - но оно каждый раз создает базу test и там создает коллекцию
что я делаю не так?
https://prnt.sc/14karmf
Главный
я так понимаю это какое то умолчание бд тест - не должно оно создавать ту базу которая используется?
Sinaver
а ты как то не так запускаешь сервер
Sinaver
дебажить нужно
Sinaver
Sinaver
Главный
Главный
вопрос в том что я пытаюсь подключится к другой базе - вот щас руками даже сделал базу
а пишет все равно в тест)
Главный
Ну решение нашел - толкьо почему не ясно
//mongoose.connect(`${MongoAddress}:${MongoPort}/${Base}`, {useNewUrlParser: true})
mongoose.connect('mongodb://localhost:27017/mongoBlog', {useNewUrlParser: true})
Главный
если убрать переменные то все ок - почему не понятно, буду пробовать по одной убирать
Главный
Sinaver
но на счёт моонгуса, советую конечно же документацию почитать) но и посмотреть MERN уроки Минина, он тоже везде использует mongoose
Sinaver
Sinaver
спасибо почитаю
если с английским туго как у меня, DeepL хорошо переводит по смыслу
Главный
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 сообщения