yopp
У монгуса не самое удобное API, но если принять все недостатки populate, то жить можно
Shokhboz
Есть альтернатива для mongoose?
Grisha
Fenicu
сомнительная у вас конфа
Fenicu
есть нож для рыбы, есть нож для мяса, батл ножей
Anonymous
✙ mateo ✙
Richard
ребят, подскажите пожалуйста, через валидацию можно ли как-либо добавить проверку на уникальность поля в коллекции?
предполагаю, что можно как-то через $expr сделать, но не смог найти внятных примеров, как его использовать в описании валидатора
Nick
Taras
всем привет
я чего-то не понимаю, что почему на официальном сайте The MongoDB Database Tools попросту отсутствует msi-файл, хотя в гайде пишет его скачать?
Taras
Taras
можете подсказать, почему при дампе ремоте базы происходит ничего? Консоль отрабатывает команду без каких-либо сообщений об ошибке
аналогичная команда с локальной бд делает дамп, а тут просто пусто
Dmitry
Всем привет!
Есть коллекция, у каждого элемента коллекции есть массив операций, у каждой операции есть дата, можно ли как-то отфильтровать коллекцию по дате, чтобы каждая дата из массива операций была больше переданной?
Пробовал такой вариант:
operations.date: {$gte: <date>}
Но он возвращает элемент коллекции, если хотя бы одна операция подошла под это условие, а мне нужно, чтобы обязательно каждая подошла
Shokhboz
Если Operations это отдельная Схема то можно так: Operations.find({data: {$gte: <date>}})
Shokhboz
Ну Представим так: Collection > operations : List<Object> > date
Shokhboz
Если случай такое то:
Collection.find(
{
operations: {
$elemMatch: {
date: {
$gte: <date>
}
}
}
)
Shokhboz
Shokhboz
Вот и на Stackoverflow: https://stackoverflow.com/questions/50648045/query-for-matching-dates-within-array
Shokhboz
Dmitry
Причем в оф. доке есть пример, где это работает должным образом: https://docs.mongodb.com/manual/reference/operator/query/elemMatch/
Но работает оно только для выражения $ne, для остальных выражений($eq, $gte) так же считает элемент коллекции подходящим, если хотя бы одна из его операций подходит под условие
Андрей
Привет. Товарищи, есть кто мониторит монги заббиксом?
У меня происходит следующая лабуда при разных версиях баз, включая и старые ветки 3.2.*, 3.4.* и вплоть до 4.2.1:
[Mongo] Cannot fetch data: read tcp ip_addr:47030->ip_addr:27017: i/o timeout.
Борол ли кто-то или есть идеи как можно побороть?
radmir
Всем привет, если использовать count() с фильтром, БД будет по всем документам проходиться или это как-то оптимизируется?
yopp
yopp
если нет, то collscan
yopp
Dmitry
yopp
https://docs.mongodb.com/manual/reference/operator/query/all/#use--all-with--elemmatch ?
Антон
подскажите, пожалуйста, почему запрос количества записей может выполнятся в 100500 раз дольше запроса самих данных? в базе около 20к записей. сам запрос на данные с лимитов 20 шт. мгновенно отрабатывает. а $count считает прям 2-3 секунды это дело
[
{ '$match': {} },
{ '$project': { model_id: 1, _id: 1 } },
{
'$lookup': {
from: 'models',
localField: 'model_id',
foreignField: '_id',
as: 'model_details'
}
},
{ '$match': { 'model_details.profile.age': '19' } },
{ '$count': 'total_count' }
]
victor
Товарищи, подскажите, пожалуйста, если у меня в авс умрет регион в котором определенная часть шардов (shard = active+passive mongodb instances) кластера находится, то стало быть, данные с этих кластеров станут недоступны, верно?
victor
каджись нашёл ответ на свой вопрос
https://developer.mongodb.com/images/aa3.png
victor
the shards are configured so that each shard has at least one replica (copy of the data) in each of the datacenters.
Александр
добрый вечер. Подскажите пожалуйста, почему не могу добавить пользователя в массив string ?
Александр
Александр
еще один вопрос. Почему во всех controllers я писал Remove . а теперь он требует с deleteOne, который не работает ?
Viktar
Viktar
Это варнинг. А не еррор. Но мой совет - прислушайтесь.
Александр
Александр
Подскажите, почему через push не могу добавить в массив элемент ?
Александр
с Pull сработало все по _id
Viktar
Пуш если я не ошибаюсь хочет на вход массив
Viktar
Ошибаюсь
Viktar
https://docs.mongodb.com/manual/reference/operator/update/push/
Александр
Александр
Viktar
Я тут вам не подскажу. Я использую запросы в консоле + питон
Александр
Viktar
В примере запрос из консоли. Он отрабатывает правильно.
Александр
Странно, что можно только документ удалить по Id, а не элемент в managers , мб я не знаю способа. Я и сделал это поле "name", чтобы удалить по id, а не искать совпадение и тд . Получается в пустую так, как по Id не могу удалить элемент "name"
Dmitry
Александр
Подскажите пожалуйста, как правильно сделать ...
Есть у меня массив managers было, например 3 объекта
- удалил 2 и 3 элемент
- удаляю последний элемент, массив пустой
Как удалить весь документ, если массив managers пустой ? В конце сделать проверку или в mongoose можно сделать какое-то условие ?
Taras
а есть какой-либо способ сделать дамп ремоте дб окромя как через строку? А то у меня через строку происходит ровным счетом ничего
например в Intellij IDEA к бд подключиться это секундное дело к любой дб, но сделать бекап можно только Постгрес SQL и MySQL
для mssql (будь она проклята) надо качать их менеджер студию
yopp
подскажите, пожалуйста, почему запрос количества записей может выполнятся в 100500 раз дольше запроса самих данных? в базе около 20к записей. сам запрос на данные с лимитов 20 шт. мгновенно отрабатывает. а $count считает прям 2-3 секунды это дело
[
{ '$match': {} },
{ '$project': { model_id: 1, _id: 1 } },
{
'$lookup': {
from: 'models',
localField: 'model_id',
foreignField: '_id',
as: 'model_details'
}
},
{ '$match': { 'model_details.profile.age': '19' } },
{ '$count': 'total_count' }
]
посмотрите что в explain(‘executionStats’), поставив его перед count. в целом, вам будет эффективнее сначала отфильтровать model по profile.age = 19 и уже потом делать $lookup. иначе в той коллекции, в которой вы делаете этот запрос из-за $match: {} у вас будет полное сканирование
yopp
yopp
$size == 0
yopp
Антон
Taras
а как вы делаете резервную копию?
я на проекте неделю и не особо понимаю, есть вероятность что вообще никак
у меня есть только строка, через которую я подключился,
Alexander
Коллеги, всем привет, подскажите пожалуйста как мне сделать update для названий, чтобы 1-я буква слова была заглавной?
вот, начитался в инете и это не работает
db.collection.find({"type": "PREDMET"}){
db.collection.update(
{ "_id": doc._id },
{ "$set": { "name": doc.name.toUpperCase() } }
);
});
в коллекции collection есть предметы - predmet и животные - animal, у предметов есть названия - name, как все name у предметов сделать с заглавной буквы?
Nick
Alexander
Alexander
Roman
как обновить обект с бд ?
Roman
типо есть у меня обект и я хочу данные обновить внём с бд
Александр
Viktar
Anonymous
How to connect mongodb with vs code flutter?
Anonymous
Free
Nick
Anonymous
Как подключить mongodb к vs code flutter?
Roman
await UserSchema.updateMany({}, { $pull: { subscribers: job._id } }, { multi: true });не могу удалить ид обекта с масива что делаю не так ?
Александр
A
/Епрра мгыфса ыч
A
Shokhboz
Привет ребята. Хочу имплементировать mongoose virtual с many-to-many relationship. Я видел что можно one-to-one, one-to-many c virtuals.