Vova
А как одним словом назвать всё это: $push $set $pull $position? хочу почитать об этом
Anonymous
тремя
Anonymous
Array Update Operators
Anonymous
https://docs.mongodb.com/manual/reference/operator/update-array/
Andrey
Доброе утро. Как можно выявлять битые коллекции и почему они возникают?
AstraSerg
Доброе. Битые коллекции? Что за зверь?
Anonymous
Kmsan õzi
Andrey
Доброе. Битые коллекции? Что за зверь?
при копировании базы выпадает такое сообщение
1s2:PRIMARY> db.copyDatabase("pro","rg")
{
"errmsg" : "exception: BSONElement: bad type 41",
"code" : 10320,
"ok" : 0
}
Anonymous
hi
AstraSerg
it is not simple, it is VERY simple :)
AstraSerg
AstraSerg
here it is https://docs.mongodb.com/manual/tutorial/deploy-replica-set/
AstraSerg
It is not very well when you learn only by example. You must read the documentation at least from time to time.
Anonymous
done
Anonymous
thankyou @AstraSerg 👍
AstraSerg
Davydov
день добрый, что-то туплю, и гугл не подсказывает где... есть колекция с несколькими миллионами записей, если я делаю через консольного клиентав ней запрос:
db.mycol.find(myfilter).sort({_id:-1}).limit(1);
отрабатывает моментально и выдает результат, пытаюсь сделать тоже самое через nodejs, вытягивает из курсора данные около полуминуты... с чем то может быть связано?
Davydov
такс, пардон, похоже где-то не там я затупил, посносил весь лишний код, заработало...
Michail
Подскажите в какую сторону копать - пишем простые данные по загрузке системы каждую минуту в монго. есть же какие то аггрегирующие функции ? Чтобы на стороне базы проводить усреднения ?
Anonymous
Qoloyslor ey
Davydov
причина была в том, что parseInt на число в фильтре не сделал, которое пришло в виде строки...
AstraSerg
Andrey
> мне получается нужно найти и починить коллекцию или индекс.
нет, вам нужно починить БД
AstraSerg
Gleb
Привет, подскажите, как решить
Gleb
Mongoose 5.x disallows passing a spread of operators to Model.aggregate(). Instead of Model.aggregate({ $match }, { $skip }), do Model.aggregate([{ $match }, { $skip }])", name: "MongooseError" }
Gleb
При этом, всё по доке вроде сделано:
.aggregate([
{ $match: { userId } },
{
$addFields: {
campaigns: {
$filter: {
input: '$campaigns',
as: 'campaign',
cond: { $eq: ['$$campaign.isActive', true] }
}
}
}
},
{
$project: {
campaigns: {
_id: 1,
targeting: 1,
position: 1,
type: 1,
// date: 1,
// name: 1,
},
widget: 1
}
}])
.exec()
yopp
AstraSerg
yopp
AstraSerg
Andrey
это типа намек, что 2.4 ансаппортед?
yopp
AstraSerg
yopp
не, я серьёзно
У меня до недавнего времени вообще 1.0.х крутилась для личных нужд
Andrey
видимо tokumx
AstraSerg
Andrey
tokumx:v3.1
Constantin
А я на второй версии учился, была книжка даже с писающим мальчиком от одного из создателей MongoDB
yopp
видимо tokumx
Ну вот и ответ на вопрос «почему бьётся».
yopp
Это скорее всего недоделки в патче/форке
yopp
Я вам настоятельно рекомендую запланировать переезд с tokumx, это мёртвое решение
yopp
Percona TokuMX
Percona TokuMX has been EOL’d.
yopp
https://www.percona.com/software/mongo-database/percona-tokumx
Andrey
Пока, даже представить сложно как все это портировать. Починить бы то что есть
yopp
Вы ничего не почините. Это неподдерживаемый форк монги, который уже 4 года вообще не разрабатывается. Им пользовалось в лучшем случае несколько тысяч человек
yopp
Скорее всего проблема с copy/clone в использовании неспецифицированных bson типов, для внутренней разметки или ещё чего
Andrey
тогда как перенести\склонировать данные на новое если такие траблы?
Andrey
есть какие то бест практис где почитать?
yopp
Вам вероятно поможет mongodump
yopp
Но может и не помочь
Andrey
оптимистично
yopp
разворачиваете standalone 4.0, останавливаете запись в tokumx, запускаете mongodump, ждёте завершения, делаете mongorestore
yopp
переключаете клиентов на 4.0
yopp
оптимистично
к сожалению, когда было принято решение использовать tokumx, принимающие решение плохо понимали риски
yopp
использование третесторонних форков, патчей и плагинов рано или поздно заканчивается вот такой вот ситуацией
Michail
yopp
Тоже самое, рано или поздно, ждёт тех, кто вписался в Percona Server for MongoDB
Gleb
up
Gleb
Mongoose 5.x disallows passing a spread of operators to Model.aggregate(). Instead of Model.aggregate({ $match }, { $skip }), do Model.aggregate([{ $match }, { $skip }])", name: "MongooseError" }
Gleb
При этом, всё по доке вроде сделано:
.aggregate([
{ $match: { userId } },
{
$addFields: {
campaigns: {
$filter: {
input: '$campaigns',
as: 'campaign',
cond: { $eq: ['$$campaign.isActive', true] }
}
}
}
},
{
$project: {
campaigns: {
_id: 1,
targeting: 1,
position: 1,
type: 1,
// date: 1,
// name: 1,
},
widget: 1
}
}])
.exec()
AstraSerg
up
я не могу помочь, извините
Gleb
и гугл молчит, будто никто с таким не сталкивался
AstraSerg
Andrey
>... то просто ее грохну
Всю коллекцию?!
Andrey
да. Там данные телеметрии.
Andrey
yopp
Andrey
Сейчас уже не подскажу. Лично не делал
Andrey
Добрый день. Не подскажите команды rs.add(name) достаточно чтобы вернуть ноду в репликасет или есть какие-то нюансы?
Constantin
Смотря что вы хотите сделать
yopp
yopp
у неё уже должен быть конфиг кластера локально и при запуске она попытается самостоятельно подключится к кластеру