Serhii
а можно сделать несколько добавлений в базу за один request?
то есть в цикле запустить такой процесс:
1. Поиск по id
2. Сверение данных
3. Добавление
и так пять раз и после отправить статус 200?
Nick
Artem
Anonymous
За свою практику я провел 4 переезда работающего MongoDB кластера. Использование встроенных решений хостеров (БД как сервис) фактически исключает переезд.
yopp
Игорь
подскажите в чем загвоздка
Anonymous
Саппорт меня игнорировал. Но я обращался за возможностью хостинга только части своих реплик. Т.е. с возможностью "бегства" ;)
Игорь
запуск на дебиан
Anonymous
Игорь
service mongod start работает нормально
Анатолий
Игорь
а что?
Анатолий
если монгод работает, а numactl - нет, ищи проблему в работе numactl
Игорь
sudo numactl --interleave=all /usr/bin/mongod --config /etc/mongod.conf &
кому интересно, нужно запустить монго и передать файл конфига
Игорь
и работает
Max
bump
@dd_bb буду признателен, если пнёте в нужную сторону
Max
товарищи, может быть ктото сталкивался.
есть расшардированая монга.
есть шард, на шард идёт миграция.
добавил в этот шард +1 сервер в репликасет.
он засинкался, все в порядке, но если сделать новый сервер мастером в шарде - балансер перестает работать.
монгос резко начинает считать, что коллекция is not sharded.
если этому новому серверу сказать stepDown() - все балансер продолжает работать в обычном режиме.
что я упустил?
yopp
Max
Внешне полностью идентичны, ибо из темплейта
yopp
А в логах что?
yopp
Ещё раз проверьте что монга тот конфиг подтянула
Max
перезапускал несколько раз.
новый сервер виден нормально внутри монгоса в sh.status, то есть он осел нормально в configserver-ах.
В логах ничего интересного не нашел от слова "совсем", - внешне железка нормально работает, синкается внутри шарда, все как положено
попробую дальше поискать.
Anonymous
Подхваченные настройки из конфига можно посмотреть в БД local
коллекция startup_log
Anonymous
Вообще, может быть не выставлен параметр
"sharding" : {
"clusterRole" : "shardsvr"
}
Max
выставлено
оно , повторю, и в sh.status() видно, и сервер поднят, и синкается
и когда он secondary внутри шарда - в него отлично льются данные.
Anonymous
Добрый день! Кто сможет помочь с написанием технического задания и архитектуры для проекта?
Артём
Можно найти документ по ссылке id в документе?
{
name: 1,
link: {
_id: "5acd373fc5ccf36b1e5640c6",
}
}
Артём
найти по link._id
Nick
можно, ищите
Nick
главное првоерьте чтобы тип совпадал
Nick
а то он может быть ObjectId а не стринговый
Yurii
vitalii
парни, есть масив. как сделать правильно
for(let key in array) {
find({'name': array[key]. id} ) } как можно по другом сделать
Yurii
const keys = array.map(e => e.id);
find({name: {$in: keys} })
Yurii
но тебе придется потом связывание в коде делать, если изменять
vitalii
спасибо большое! а что за связывание, немного не понял
Yurii
vitalii
просто отдача))
vitalii
спасибо! забыл что так можно сделать, че-то немного уже туплю под вечер))
Артём
У меня в докентре есть массив, в нем будут храниться объекты со ссылкой на документ.
likes: [{
owner_id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
date: {
type: Date,
required: false
}
}],
Артём
Хочу в owner_id запихнуть ссылку на User, но в итоге _id получается
Артём
должно получиться вот так likes: [{owner_id: "2", ...}], а сейчас likes: [{_id: "уникальный id", ...}]
Артём
_id: 5ae24a2b5659bc1e653fc287
owner_id: 5acd373fc5ccf36b1e5640c6
date: 2018-04-27 00:52:43.309
Артём
_id всегда будет создаваться?
Артём
Понял, спасибо.
Артём
Делаю запрос и в результате получаю post в котором есть likes: [{a: 1}]
Пытаюсь в этих likes найти объект, где a == 1
postLikes.find(like => like.a === 1);
Но выдает undefined
На обычном массиве всё работает
Maksim
Привет.
Мне необходимо сделать агрегацию данных за период, решил использовать mapReduce.
Набор данных представляет собой числа описывающих движение графика во времянном промежутке в ту или инную сторону.
Подскажите, как найти минимальное значение на промежутке?
Maksim
Nick
https://docs.mongodb.com/manual/reference/operator/aggregation/min/
Maksim
Т.е. минимальное значение от базовой точки(допустим это будет 0) -9.
Nick
а какая разница?
Nick
фильтром укажите какой диапазон обрабатывать
Maksim
Т.е. если серия данных -100 +300 -200, то минимальное значение от базовой точки это -100
Nick
нет вариантов
Nick
меняйте структуру данных
Nick
или делайте на клиенте
Maksim
Nick
монга не позвляет хранить состояние в мапредьюсе, а вам это нужно
yopp
Maksim
Не очень понял почему -100 минимальное.
По тому что идем от нуля, -100 это значение минус сто, потом вверх на 300 и значение двести, -200 график опять в нуле. Минимальное значение графика на этом промежутке -100
yopp
Ага. Вы дельтами оперируете.
Maksim
Ага. Вы дельтами оперируете.
Все верно. Просто эти дельты нужно будет группировать по различным промежуткам, найти суммы не составляет проблем, а вот именно минимальное значение похоже не засунуть в mapReduce.
yopp
А какой физический смысл этих дельт?
yopp
А какую задачу вы хотите решить?
Maksim
Найти минимальное значение суммы дельт на заданном промежутке.
yopp
Но это же будет просто минимальный баланс
Maksim
Но это же будет просто минимальный баланс
Текущий баланс не хранится в документе. Данный баланс обнуляется каждый месяц. Это игра такая, вначале месяца у всех одинаковое количество ресурсов, в конце месяца составляется топ по результатам и обнуляется в некоторое значение.
yopp
Вам проще хранить баланс рядом с дельтой
Stepan
Здравстуйте. Как при $group вернуть поле _id именно как ObjectID и при этом вернуть поле по которому групирую
.aggregate([
{
$group: {
_id: '$type',
previewImage: {
$push: '$previewImage'
},
variables: {
$push: '$variables'
},
id: {
$push: '$_id'
},
}
},
{
$project: {
previewImage: 1,
type: 1,
variables: 1,
_id:1
}
}
])
Stepan
здесь _id будет то поле по которому группирую, а надо еще и именно _id
Stepan
Я думал перед $group сделать $project, и сделать что-то типа id куда вложить _id