Leonid
ну и где тут 9й символ 1й строки я увижу?
Leonid
хотя могу предположить что первым у тебя идет ObjectId("q123aeaewaeweaeawe") что недопустимо
Konstantin
И что же делать
Dmitriy
попробуй воспользоваться штатными средствами монги mondodump и mongorestore
Leonid
а вы пытались гуглить? первый же ответ "How to import Mongodb ObjectId from CSV file using mongoimport?" дает ответ
Konstantin
Попробую
Konstantin
Спасибо за наводку, пойду поищу
Leonid
мастерство гугления нужно оттачивать)
Konstantin
Я знаю)
Dmitriy
и это ответ из гуглежки
это ответ из головы, не обязательно гуглить, чтобы знать какие-то прописные вещи
Leonid
это ответ из головы, не обязательно гуглить, чтобы знать какие-то прописные вещи
я знаю. csv не предназначен для миграции данных. особенно идентификаторов монги. этот же ответ дается в ответе на гугление
Mikhail
Всем привет! Ищу дба постгрес - тут будет актуальна вакансия?
Konstantin
?
Алмаз
Добрый день, есть такая структура(упрощенная) данных по движению номенклатуры по складам. db.stockFlow.insertMany([ { //доп информация, ссылки на документы, кто создал, когда, итп. stockID: [{value:10}], inOut: [{value: ‘in’}], items: [ {itemID: [{value: 201}], quantity: [{value: 30}]}, {itemID: [{value: 301}], quantity: [{value: 20}]}, {itemID: [{value: 401}], quantity: [{value: 10}]}, ] }, { stockID: [{value:10}], inOut: [{value: ‘out’}], items: [ {itemID: [{value: 201}], quantity: [{value: 20}]}, {itemID: [{value: 301}], quantity: [{value: 10}]}, {itemID: [{value: 401}], quantity: [{value: 5}]}, ] } ]); Нужно сгруппировать по: ⁃ stockID.value ⁃ items.itemID.value ⁃ inOut.value Получить итоговую сумму по - `items.itemID.quantity.value` Понимаю, что структура не очень оптимальная, по правильному нужно лишние массивы с объектам убрать. Второй день мучаюсь, не могу осилить. Помогите)
Konstantin
?
@Dr_klo
Leonid
@Dr_klo
Снова битый CSV
Konstantin
Снова битый CSV
Как его починить?
Leonid
Вы его скриптом генерируете?
Leonid
Рекомендую использовать любой общедоступный валидатор CSV
Ilya
Добрый день, есть такая структура(упрощенная) данных по движению номенклатуры по складам. db.stockFlow.insertMany([ { //доп информация, ссылки на документы, кто создал, когда, итп. stockID: [{value:10}], inOut: [{value: ‘in’}], items: [ {itemID: [{value: 201}], quantity: [{value: 30}]}, {itemID: [{value: 301}], quantity: [{value: 20}]}, {itemID: [{value: 401}], quantity: [{value: 10}]}, ] }, { stockID: [{value:10}], inOut: [{value: ‘out’}], items: [ {itemID: [{value: 201}], quantity: [{value: 20}]}, {itemID: [{value: 301}], quantity: [{value: 10}]}, {itemID: [{value: 401}], quantity: [{value: 5}]}, ] } ]); Нужно сгруппировать по: ⁃ stockID.value ⁃ items.itemID.value ⁃ inOut.value Получить итоговую сумму по - `items.itemID.quantity.value` Понимаю, что структура не очень оптимальная, по правильному нужно лишние массивы с объектам убрать. Второй день мучаюсь, не могу осилить. Помогите)
db.tmp.aggregate([{ $unwind : "$items" }, {$unwind: "$items.itemID"}, {$unwind: "$items.quantity"}, {$group: {"_id": {"stockID_value": "$stockID.value", "inOut_value": "$inOut.value", "itemID_value": "$items.itemID.value"}, "res": {$sum: "$items.quantity.value"}}}]) { "_id" : { "stockID_value" : [ 10 ], "inOut_value" : [ "out" ], "itemID_value" : 401 }, "res" : 5 } { "_id" : { "stockID_value" : [ 10 ], "inOut_value" : [ "out" ], "itemID_value" : 301 }, "res" : 10 } { "_id" : { "stockID_value" : [ 10 ], "inOut_value" : [ "in" ], "itemID_value" : 201 }, "res" : 30 } { "_id" : { "stockID_value" : [ 10 ], "inOut_value" : [ "in" ], "itemID_value" : 301 }, "res" : 20 } { "_id" : { "stockID_value" : [ 10 ], "inOut_value" : [ "in" ], "itemID_value" : 401 }, "res" : 10 } { "_id" : { "stockID_value" : [ 10 ], "inOut_value" : [ "out" ], "itemID_value" : 201 }, "res" : 20 }
Ilya
народ а у кто то пробывал на https://play.db-ai.co/ агрегацию тестить? а то у меня что-то даже на простых примерах она не работает?
yopp
Починю
Ilya
спасибо)
yopp
а вы пытались гуглить? первый же ответ "How to import Mongodb ObjectId from CSV file using mongoimport?" дает ответ
В следующий раз ro на месяц. Если вы смогли нагуглить — дайте ссылку.
vveare138
всем привет, есть коллекция документов - хочу глянуть дифф двух полей с таймстампами, делаю это через aggregate + substract, но консолька ругается на cant $subtract astring from a string
vveare138
значит ли это, что там лежит не тот тип что я ожидаю?
vveare138
aggregate([{"$project" => { dateDifference: { "$subtract" => ["$updated_at", "$created_at"]}}}]) запрос выглядит вот так
vveare138
ага, понятно
vveare138
проехали
Валерий
Приветствую, подскажите по парсингу сайтов на питоне с монгобд. Задача парсить авито и юлу, необходима высокая скорость работы, все будет упираться в прокси.. какие сейчас есть методы чтобы получить высокую скорость работы с наименьшим кол-вом проксей? какие больше подойдут для этой задачи, обычные или моб? какие подходы можно задействовать чтобы можно было задействовать максимум потоков на одной проксе?
Jack 🎲
Всем привет. Возможно как-то синхронизировать монгу на двух серваках?
yopp
Всем привет. Возможно как-то синхронизировать монгу на двух серваках?
https://docs.mongodb.com/manual/replication https://docs.mongodb.com/manual/tutorial/deploy-replica-set
Jack 🎲
Не знал, что такое репликация. Изучу)
Jack 🎲
А MQ через монгу кто-то пилил?
Alex
Я конечно задам занудный вопрос, но зачем это делать?
Konstantin
@Dr_klo
Konstantin
он все в кавычки взял при импорте. как это исправить?
yopp
он все в кавычки взял при импорте. как это исправить?
Если вы хотите сохранить типы данных, то используйте mongodump
Konstantin
база называется test, коллекция users
yopp
не подскажешь как?
https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/#basic-mongodump-operations
yopp
mongodump --collection=users --db=test
yopp
https://docs.mongodb.com/manual/tutorial/backup-and-restore-tools/#basic-mongorestore-operations
yopp
mongorestore
Konstantin
а как мне из csv файла bson получить?
yopp
Никак. Вам нужно снова сделать дамп из вашей базы
Konstantin
Никак. Вам нужно снова сделать дамп из вашей базы
то есть я должен импортировать существующий csv файл, потом прописать это: mongodump --collection=users --db=test а затем это mongorestore ?
yopp
А откуда у вас cvs файл?
Konstantin
экспортировал
Konstantin
через компас
Konstantin
потом сюда
Konstantin
и все
yopp
Вам вместо экспорта необходимо из этой базы данных сделать mongodump
Konstantin
к сожалению у меня нету базы
Konstantin
есть только сsv
yopp
В таком случае вам необходимо вручную сделать mongoimport и указать типы полей https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-columnshavetypes
yopp
https://docs.mongodb.com/manual/reference/program/mongoimport/#import-csv-with-specified-field-types
Nick
А MQ через монгу кто-то пилил?
И всетаки зачем? Почему не использовать соответствующии задаче нормальные менеджеры очередей?
madspectator
Я пробовал тестит mонгу и rabbit через питон kombu-либу, монга в несколько раз медленнее была.