mongodb

yii2tech Value should either an object or a null, 'array' given.

--такой вот косяк.

Решается в общем случае подключением поля с помощью метода mapEmbeddedList().
Подробности решения сообщим тут позже.

-- тут такой момент: mapEmbeddedList() создаёт ArrayObject -- но его приходится вручную "набивать" из пришедших от формы данных, а также не слишком ясно как сделать нормальную валидацию вложенной модели на форме.

Поэтому я рекомендую использовать для вложенных документов mongodb расширение consultnn/yii2-mongodb-embedded .

Ошибка Exception (MongoDB Exception) 'wrong type for field (pipeline) 3 != 4' -- Решение (вложенность)

Exception (MongoDB Exception) 'yii\mongodb\Exception' with message 'wrong type for field (pipeline) 3 != 4'

-- такая вот ошибка.

Причина и Решение

В моём случае причина оказалась в неправильной вложенности объектов -- в том, что при агрегации один из пунктов не было обёрнут в объект -- есть было так:

MongoDB Exception – yii\mongodb\Exception No suitable servers found (`serverSelectionTryOnce` set): [connection closed calling i

MongoDB Exception – yii\mongodb\Exception
No suitable servers found (`serverSelectionTryOnce` set): [connection closed calling ismaster on 'localhost:27017']

-- ошибка связана с версией mongo -- в нашем случае помог переход с 2.6 на 3.2

Class 'MongoDB\Driver\Query' not found Ошибка

Установите mongodb:

sudo apt-get install  php-mongodb

ubuntu mongoDB установка и настройка

Установка

Последняя рекомендованная версия

Ставим последнюю рекомендуемую версию mongoDB:

sudo apt-get install mongodb

Конкретная версия

Ставим конкретную версию (предварительно, возможно придётся добавить репозиторий):

Запуск mongodb в Ubuntu -- локальная установка НЕ из репозитория

Предположим, что вы уже скачали mongo (просто сайта) и распаковали архив.

Далее:

  • перейдите в папку /bin
  • И запустите файл:
    sudo ./mongod

mongodb Частичный дамп базы/коллекции

Общая идея частичной выгрузки данных из коллекции состоит в следующем (команда дампа с подстановкой запроса):

mongodump -d 'your_database' -c 'your_collection' -q '{_id: {$gte: ObjectId("50ad7bce1a3e927d690385ec")}}'

Источник:
stackoverflow.com/questions/1587846/how-do-i-show-the-changes-which-have-been-staged

mongodb mongorestore Зависает при разворачивании дампа -- работает слишком медленно

Проблема наблюдается в том, что база зависает -- работает очень медленно при разворачивании дампа (mongorestore), съедает оперативную память, и м.б. выходит в своп.

Если вам не нужна целая база, можно попробовать развернуть частичный дамп.

mongodb Форматированный вывод в консоль терминал -- понятный формат

Чтобы данные отображались красиво и понятно добавляйте к запросу:

.pretty()

например:

db.report.find({}).pretty()

Pages

Subscribe to RSS - mongodb