yopp
Монга не сможет его использовать для без номера карты
yopp
В этом случае эффективнее иметь два индекса: по date и по cn, date
T.A
аа, всё понятно. спасибо большое. только по дате без номера карты запрашивать не буду. значит остаётся только компаунд
Alexey
Всем привет! Занимаюсь фронтом - для общего развития решил поиграться с нодой и монгой, как ODM использую mongoose и столкнулся с не совсем понятной для меня вещью: 1 - имеется массив тудушек, их айдишники грубо говоря 1,2,3,4,5 2 - удаляю тудушку с индексом 1 - Todo.findByIdAndRemove(1), остаются тудушки с индексами 2,3,4,5 3 - тут уже непонятный для меня момент: я могу вызывать монгусовский метод Todo.findByIdAndRemove(1) и никакой ошибки не будет просто метод ничего не вернет, могу вызывать метод findByIdAndUpdate(1), ну т.е база никаких ошибок не выплевывает на то, что я отредактировал несуществующую сущность Я вроде и понимаю, что могу просто в успешном колбэке смотреть, что если ничего в ответе от базы нет кинуть ошибку, просто не отпускает ощущение, что что-то не так) Может где-то в конфиге базы надо указывать, чтобы она реагировала на такие ситуации, как на ошибки, или наоборот все правильно сделано, а тот подход который я озвучил, только усложнит жизнь в общем, если кто-то может проясните этот момент, или скажите, про что загуглить/почитать, чтоб это более очевидным казалось
Daniil
Всем привет! Занимаюсь фронтом - для общего развития решил поиграться с нодой и монгой, как ODM использую mongoose и столкнулся с не совсем понятной для меня вещью: 1 - имеется массив тудушек, их айдишники грубо говоря 1,2,3,4,5 2 - удаляю тудушку с индексом 1 - Todo.findByIdAndRemove(1), остаются тудушки с индексами 2,3,4,5 3 - тут уже непонятный для меня момент: я могу вызывать монгусовский метод Todo.findByIdAndRemove(1) и никакой ошибки не будет просто метод ничего не вернет, могу вызывать метод findByIdAndUpdate(1), ну т.е база никаких ошибок не выплевывает на то, что я отредактировал несуществующую сущность Я вроде и понимаю, что могу просто в успешном колбэке смотреть, что если ничего в ответе от базы нет кинуть ошибку, просто не отпускает ощущение, что что-то не так) Может где-то в конфиге базы надо указывать, чтобы она реагировала на такие ситуации, как на ошибки, или наоборот все правильно сделано, а тот подход который я озвучил, только усложнит жизнь в общем, если кто-то может проясните этот момент, или скажите, про что загуглить/почитать, чтоб это более очевидным казалось
Да вроде нет
Daniil
По факту просто под ваш query ничего не нашлось и это не является ошибкой
Daniil
Но вам ничто не мешает посмотреть на nRemoved и выбросить ошибку при 0
Anonymous
Кто нибудь может скинуть ссылку на крутые видосы по mongodb?
xppyct
Кто нибудь может скинуть ссылку на крутые видосы по mongodb?
https://yandex.ru/video/touch/preview?filmId=4484678439453277376&reqid=1588361744237093-926411133762393040700113-sas1-7816&suggest_reqid=152577788157341154817443227090169&text=highload+mongodb не плохой доклад про масштабиррвание
Anonymous
Спасибо
Anonymous
Спасибо
Rodion
Друзья, подскажите, пожалуйста, вот эта проблема сейчас как решается? Если уменьшить кол-во одновременных подключений проблематично. MongoDB.Driver.MongoWaitQueueFullException The wait queue for acquiring a connection to server localhost:27017 is full.
yopp
Друзья, подскажите, пожалуйста, вот эта проблема сейчас как решается? Если уменьшить кол-во одновременных подключений проблематично. MongoDB.Driver.MongoWaitQueueFullException The wait queue for acquiring a connection to server localhost:27017 is full.
https://mongodb.github.io/mongo-java-driver/3.9/javadoc/com/mongodb/ConnectionString.html Одна из двух этих опций, в зависимости от того во что уперлись Connection pool configuration: • maxPoolSize=n: The maximum number of connections in the connection pool. • waitQueueMultiple=n : this multiplier, multiplied with the maxPoolSize setting, gives the maximum number of threads that may be waiting for a connection to become available from the pool. All further threads will get an exception right away.
Valerii
Привет, никто не может подсказать, не ли у коллекции какого-нибудь описания или других данных, чтобы сохранять туда какую-либо инфу о коллекции, или создать документ в коллекции с информацией единственный вариант?
Valerii
Нет, такого инструмента нет. А вам зачем?
Ну хранить инфу разную, например у меня есть товары, а каждая коллекция - категория Безусловно можно сделать либо отдельную коллекцию с информацией
yopp
Товары эффективнее хранить в одной коллекции, а категорию сделать свойством документа с товаром
Valerii
Товары эффективнее хранить в одной коллекции, а категорию сделать свойством документа с товаром
Там у меня просто тг бот, он ещё категоризируют сам, там сложная схема😂😂 Но в любому случае, спасибо
Anonymous
.есть массив городов в нем массив магазинов в каждом городе (эльдорадо мвидео днс....) , массив адресов, в нем массив магазинов(по конкретному адресу) у них есть лайки и есть фото и есть комментарии к каждому магазину по адресу .сколько и как коллекций сделать?
Anonymous
{ город: 'Москва', магазин: 'эльдорадо', адрес: 'ул.мира12', коммент: "отличный магазин", фото:img , лайки:3 }
Anonymous
Соответсвенно выборка будет по городам, магазинам, и адресам.
Anonymous
Комментов фото и лайков к конкретному адресу будет миллион допустим
Zhako ❄️
?
Zhako ❄️
Привет всем, можете ли помочь,тнужно с помощью beuatifulSoup вывести таблицу(парсинг динамического сайта), сделала как на 1 фото, а нужно как на 2
Zhako ❄️
Zhako ❄️
Zhako ❄️
как распределить по колоннам? Чтобы сперва родительский, а потом дочерние
Zhako ❄️
когда парсишь сайт , что делать если классы спанов и дивок одинаковые , но нужно вытащить только один спан
Anonymous
Подскажите пожалуйста, есть город const CitySchema = mongoose.Schema({ name: { type: String, required: true, }, }); Есть регион const RegionScheme = mongoose.Schema({ name: { type: String, required: true, }, cityId: { type: mongoose.Schema.Types.ObjectId, ref: "city", }, }); Как мне получить все регионы города ? Пробовал так:
Anonymous
const regions = await City.findById(cityId).populate("region");
Daniil
Region.find({ cityId: <id> })
Daniil
Популейт так не работает, как вы хотите
Daniil
Текущие схемы позволяют при выборке регионов популейтить их города
Daniil
А не наоборот
Daniil
Для этого нужно в городе хранить массив регионов и популейтить его
Anonymous
Для этого нужно в городе хранить массив регионов и популейтить его
const CitySchema = mongoose.Schema({ name: { type: String, required: true, }, regions: [{type: …., ref: ‘region’}] });
Anonymous
так ?
Anonymous
Но тогда при создании города сразу нужно передвать в него регионы верно ? Если я хочу создать сначала город а на другой странце добавлять регионы, то мне эта схема не подходит ?
Daniil
Daniil
Или сразу целиком массив добавляете в документ
Anonymous
Anonymous
верно ?
Daniil
City.findById(id).create({regions: сюда пушу})
Конкретно вот так я сам не делал никогда, мб работает Я бы сделал updateOne({ _id }, { тут пуш })
Anonymous
понял, спасибо буду сейчас разбираться)
Anonymous
City.findById(id).create({regions: сюда пушу})
это интуитивно написал)
Anonymous
Конкретно вот так я сам не делал никогда, мб работает Я бы сделал updateOne({ _id }, { тут пуш })
что то я запутался. Я делаю City.updateOne({тут id города}, {но что тут пушить ?}) Если пишу так City.updateOne({тут id города}, {regions: [{name:test}] }) ошибка CastError
Mr V
Привет всем. Почему с MongoAtlas бывает не приходят записи. Ошибок нет, async/await'ы где надо, есть, и где не надо — тоже. Просто приходит пустой ответ. В массив пушится пустота.
Anonymous
как выглядит regions в схеме?
const RegionScheme = mongoose.Schema({ name: { type: String, required: true, }, city: { type: mongoose.Schema.Types.ObjectId, ref: "city", }, });
Daniil
const RegionScheme = mongoose.Schema({ name: { type: String, required: true, }, city: { type: mongoose.Schema.Types.ObjectId, ref: "city", }, });
В CitySchema должен быть объявлен массив regions: [{ type: ObjectId, ref: ‘city’ }] Вы создаете город с пустым массивом regions После чего вы создаете новый регион, берете его айдишку и выполняете запрос вида: City.updateOne({ _id: cityId }, { $push: { regions: regionId } }) Тем самым добавляя в массив regions нужного вам города новый регион Потом можно сделать City.find({}).populate(‘regions’)
Mykola 🤷🏼‍♀️
Есть простые варианты, как это обойти? Какое-то дефолтное значение для output документа, если ни один из входящих документов не попал в boundaries
Mr V
Просто бывает время от времени пустоту отдаёт
Daniil
значит что то не так у вас в коде
Daniil
скорее всего с room
Mr V
Да, возможно.
Mr V
Мб где-то async/await забыл
Daniil
странно, что вы используете async/await и при этом обрабатываете ответ в колбеке
Mr V
Да
Mr V
Но без этого пустота приходила
Mr V
Хотя это похоже на костыль.
Daniil
абсолютный
Daniil
как и async/await вместе с колбеком)
Mr V
Вы правы, походу пустой room приходит, поэтому и пустоту выдаёт.
Anonymous
если вам не нужны будут выборки в другую сторону, то уберите это поле из схемы
Ага, разобрался, тупанул сейчас думал не передаю ид что бы записать, а я же его передаю) спасибо
Georgii
Привет! Порекомендуйте buildpack на heroku, чтобы делать mongodump прода и mongorestore на дев и стейджинг. Их там много, хз, какой стоит взять. https://elements.heroku.com/search/buildpacks?q=mongo Этот кажется годным: http://github.com/guidodizi/heroku-buildpack-mongo.git
4eburator
Привнт всем, в монго 4 как я понял не подерживается --source, как можно настроить реплекацыю без реплика сетов на мастере?
Roman
я вас нашёл
Roman
Paul
Привет На гитхабе видел несколько схем такого типа const mongoose = require('mongoose') var Schema = mongoose.Schema; const userSchema = new Schema({ chat_id: { type: Number, index: true, unique: true, required: true }, first_name: { type: String, required: true }, last_name: String, username: String, }, { timestamps: true }) const User = mongoose.model("User", userSchema) module.exports = User Но я всё время получаю ошибку The 2nd parameter to `mongoose.model()` should be a ' + 'schema or a POJO Подскажите, пожалуйста, что я делаю не так
Roman
что такое монгус. схема