Владимир Т
[mongo@mongobackup bin]$ ./bsondump /u01/backup/07.07.2019/oplog.bson
2019-07-08T18:01:53.588+0600 0 objects found
2019-07-08T18:01:53.588+0600 unexpected EOF
Владимир Т
или
Владимир Т
[mongo@mongo backup]$ bsondump /u02/backup/u02/backup/04.07.2019/oplog.bson
2019-07-08T18:28:41.004+0600 unable to dump document 1: Document is corrupted
2019-07-08T18:28:41.004+0600 1 objects found
2019-07-08T18:28:41.004+0600 invalid BSONSize: -666561302 bytes
yopp
Логично
yopp
Потому что вам сначала необходимо разархивировать содержимое
Владимир Т
а когда я не использую параметр —gzip я могу посмотреть содержимое
Владимир Т
Владимир Т
да, но что разархивировать?
yopp
Да, потому что вы не используете gzip
Владимир Т
в мануалах я не нашел как открыть oplog.bson после дампа —gzip, есть только восстановление, после которого при применении oploga я получаю что 1 документ corrupted
yopp
gunzip -c oplog.bson | bsondump -
yopp
Зачем вам его открывать. Расскажите ещё раз о том с какой проблемой вы пытаетесь справиться
Владимир Т
с проблемой при восстановлении БД с параметром --oplogReplay
yopp
В чем она заключается?
yopp
yopp
🤷🏻♂️
Lev
Нарисуйте :)
Да можно и словами. Все просто. Каждая запись в коллекции имеет свойство parentId и получается, что коллекция разбита на деревья или графы. Это я так документы пытаюсь хранить, если есть способ каноничней/верней - скажите. Так же у каждой записи из одного дерева свойство historyId имеет одинаовое значение. По этому значению я могу найти все версии одного документа. Посмотрев различия в между версиями в одном графе я могу посмотреть кто что менял и по какой причине (под причину отдельное поле). Остается задача найти те записи в одной history, которые не имеют потомков.
Владимир Т
🤷🏻♂️
[mongo@mongo 15.07.2019]$ gunzip -c oplog.bson | bsondump /u02/backup/15.07.2019/oplog.bson
2019-07-15T18:21:56.208+0600 unable to dump document 1: Document is corrupted
2019-07-15T18:21:56.208+0600 1 objects found
2019-07-15T18:21:56.208+0600 invalid BSONSize: 866495831 bytes
yopp
yopp
Но я ещё раз задам вопрос: зачем вам bsondump вообще
yopp
Владимир Т
yopp
С какой целью?
Владимир Т
ну потомучто при mongorestore я получаю аналогичную ошибку
yopp
Так, теперь мы начинаем приходить к реальной проблеме
yopp
Как вы восстанавливаете с помощью mongorestore?
Владимир Т
./mongorestore --oplogReplay --gzip
yopp
Попробуйте вместо —gzip использовать —archive
Владимир Т
без параметра —gzip?
Владимир Т
просто —archive
yopp
Да
Владимир Т
сейчас сделаю дамп без опции —gzip c опцией --archive
Vladimir
db.collection.dropIndex()
Сохранит значение?
Alexander
У меня логи после ротации превращаются в бинарные файлы.
Кто-нибудь сталкивался?
yopp
Это не дамп, это копия dbPath
yopp
Vladimir
спс
Anonymous
Владимир Т
Да
увы просто с параметром —archive дамп весит много и не влез на диск
Valdis
всем привет. могу ли я через mongoose nodejs сделать запрос find с условием выборки чтобы какое-то поле было меньше какого-то числа?
Daniil
https://docs.mongodb.com/manual/reference/operator/query/lt/
Daniil
Valdis
Valdis
а такой вопрос. у меня есть документ пользователь и у каждого пользователя есть роль
в sql я бы создал таблицу ролей и потом просто айдишник из той таблицы указывал бы. в монге best practice просто текстом роль указывать или как?
Alexander
Возможно архивируются
# file mongod.log.2019-07-14T07-21-41
mongod.log.2019-07-14T07-21-41: data
Daniil
yopp
За одно, убедитесь что у вас и mongodump и mongorestore одной версии
Владимир Т
Спасибо, попробую, проверю
Andrey
Маfеt
@dd_bb
4eburator
Привет
4eburator
Я ищу помощь с выбором из БД
yopp
4eburator
Пожалуйста, помогите мне выбрать из коллекции только документы с "(set.ID=1 and NOT set.TIME>now) or no set.ID"
Документы выглядят так:
{
user:123,
set:[
{
ID:1,
time:1863207076
},
{
ID:1,
time:1563207076
},
{
ID:1,
time:1263207076
},
{
ID:2,
time:1863207076
},
{
ID:4,
time:1563207076
},
{
ID:1,
time:1263207076
}
]
}
yopp
Пожалуйста, помогите мне выбрать из коллекции только документы с "(set.ID=1 and NOT set.TIME>now) or no set.ID"
Документы выглядят так:
{
user:123,
set:[
{
ID:1,
time:1863207076
},
{
ID:1,
time:1563207076
},
{
ID:1,
time:1263207076
},
{
ID:2,
time:1863207076
},
{
ID:4,
time:1563207076
},
{
ID:1,
time:1263207076
}
]
}
https://docs.mongodb.com/manual/tutorial/query-array-of-documents/
yopp
и ещё https://docs.mongodb.com/manual/reference/sql-comparison/
Roman
приветы!
Roman
срочный простой вопрос
Roman
https://docs.mongodb.com/manual/reference/method/db.collection.findOne/
projection в драйвере многи ноды depreceated
Roman
и чего теперь?
Roman
https://mongodb.github.io/node-mongodb-native/3.2/tutorials/projections/
Roman
через жопу
Roman
collection.findOne(...).project is not a function
Roman
async getUserByToken(token) {
const collection = await this.db.collection('users');
const exist = await collection.findOne({
token,
tokenExpire: {
$gt: new Date().getTime()
}
}, {
fields: {
_id: false,
username: true,
id: true,
service: true,
secret: true
}
});
return exist;
}
как такое исправить в рассово верный?
yopp
yopp
и я не уверен что монга умеет в булевые параметры
Roman
я изначально без него и писал код
Roman
Roman
эти вопросы я вообще не задавал)
yopp
https://docs.mongodb.com/manual/reference/method/db.collection.findOne/#specify-the-fields-to-return
Roman
у меня все работате прекрасно с этим куском кода
Roman
yopp
это монгус?
Roman