Size: a a a

2020 May 02

О

Олег in MongoDB Russian
так ?
источник

О

Олег in MongoDB Russian
Но тогда при создании города сразу нужно передвать в него регионы верно ? Если я хочу создать сначала город а на другой странце добавлять регионы, то мне эта схема не подходит ?
источник

DL

Daniil Lebedinsky in MongoDB Russian
Олег
так ?
Да
источник

DL

Daniil Lebedinsky in MongoDB Russian
Олег
Но тогда при создании города сразу нужно передвать в него регионы верно ? Если я хочу создать сначала город а на другой странце добавлять регионы, то мне эта схема не подходит ?
Пушите новые регионы просто в нужный город
источник

DL

Daniil Lebedinsky in MongoDB Russian
Или сразу целиком массив добавляете в документ
источник

О

Олег in MongoDB Russian
Daniil Lebedinsky
Или сразу целиком массив добавляете в документ
City.findById(id).create({regions: сюда пушу})
источник

О

Олег in MongoDB Russian
верно ?
источник

DL

Daniil Lebedinsky in MongoDB Russian
Олег
City.findById(id).create({regions: сюда пушу})
Конкретно вот так я сам не делал никогда, мб работает
Я бы сделал updateOne({ _id }, { тут пуш })
источник

О

Олег in MongoDB Russian
понял, спасибо буду сейчас разбираться)
источник

О

Олег in MongoDB Russian
Олег
City.findById(id).create({regions: сюда пушу})
это интуитивно написал)
источник

О

Олег in MongoDB Russian
Daniil Lebedinsky
Конкретно вот так я сам не делал никогда, мб работает
Я бы сделал updateOne({ _id }, { тут пуш })
что то я запутался. Я делаю City.updateOne({тут id города}, {но что тут пушить ?}) Если пишу так
City.updateOne({тут id города}, {regions: [{name:test}] }) ошибка CastError
источник

VM

Viktor Maklakov in MongoDB Russian
Привет всем. Почему с MongoAtlas бывает не приходят записи. Ошибок нет, async/await'ы где надо, есть, и где не надо — тоже. Просто приходит пустой ответ. В массив пушится пустота.
источник

DL

Daniil Lebedinsky in MongoDB Russian
Олег
что то я запутался. Я делаю City.updateOne({тут id города}, {но что тут пушить ?}) Если пишу так
City.updateOne({тут id города}, {regions: [{name:test}] }) ошибка CastError
как выглядит regions в схеме?
источник

О

Олег in MongoDB Russian
Daniil Lebedinsky
как выглядит regions в схеме?
const RegionScheme = mongoose.Schema({
 name: {
   type: String,
   required: true,
 },
 city: {
   type: mongoose.Schema.Types.ObjectId,
   ref: "city",
 },
});
источник

DL

Daniil Lebedinsky in MongoDB Russian
Олег
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’)
источник

NS

Nikolay 🤷🏼‍♀️ Simoti... in MongoDB Russian
Есть простые варианты, как это обойти? Какое-то дефолтное значение для output документа, если ни один из входящих документов не попал в boundaries
источник

О

Олег in MongoDB Russian
Daniil Lebedinsky
В CitySchema должен быть объявлен массив regions: [{ type: ObjectId, ref: ‘city’ }]
Вы создаете город с пустым массивом regions
После чего вы создаете новый регион, берете его айдишку и выполняете запрос вида:
City.updateOne({ _id: cityId }, { $push: { regions: regionId } })
Тем самым добавляя в массив regions нужного вам города новый регион
Потом можно сделать City.find({}).populate(‘regions’)
Спасибо!
источник

DL

Daniil Lebedinsky in MongoDB Russian
Viktor Maklakov
Привет всем. Почему с MongoAtlas бывает не приходят записи. Ошибок нет, async/await'ы где надо, есть, и где не надо — тоже. Просто приходит пустой ответ. В массив пушится пустота.
если приходит пустой ответ, то по вашему запросу ничего не нашлось
источник

VM

Viktor Maklakov in MongoDB Russian
Viktor Maklakov
Привет всем. Почему с MongoAtlas бывает не приходят записи. Ошибок нет, async/await'ы где надо, есть, и где не надо — тоже. Просто приходит пустой ответ. В массив пушится пустота.
Исправил так: :D
while (!messages.length) {
     await MsgsMongo
     .find({ room }, (err, res) => {
       if (err) return console.error(err);
       messages.push(...res);
     })
   }
источник

VM

Viktor Maklakov in MongoDB Russian
Daniil Lebedinsky
если приходит пустой ответ, то по вашему запросу ничего не нашлось
Не, там есть записи
источник