2013-06-09 2 views
0

, выдавшего MongoDB команды:

db.foo.insert({ x: "foo", y: "bar" })
db.foo.update({ x: "foo" }, { $unset: { y: 1 } })

вызывает эту ошибку: MongoError: Invalid modifier $unset

Как я понимаю, согласно Update Operators: $unset части MongoDB docs, это должно работать безупречно.

Shell Версия: 2.4.4 - установка (Ubuntu 10.04): MongoDB-10gen_2.4.4_amd64.deb

MongoDB журнала говорит: update test.foo query: { x: "foo" } exception userassert:Invalid modifier specified $unset 0ms

+0

она отлично работает для меня. является точной cut-n-paste? если да, то какая именно версия - проверьте как version(), так и db.version() –

+0

Да, копирование вашей команды и вставка ее в оболочку Mongo 2.2.3 на моем компьютере работает для меня. Вы должны использовать устаревшую багги-версию (текущая версия 2.4 - 2.4.4) или тот, который был неправильно установлен или что-то вроде странной кодировки. –

+0

@ АсяКамский Выдача команды version() возвращает 2.4.4, но db.version() возвращает 1.2.2! Взглянув в это прямо сейчас. – conspireagainst

ответ

1

Оказывается, что, хотя версия MongoDB была в факт 2.4.4, база данных версия была 1.2.2. Несмотря на то, что я недавно обновил версию mongod до последней, я забыл остановить процесс mongod.

Решение было простым (я использую конфигурационный файл):

mongod --dbpath /data/db --shutdown
mongod --config /etc/mongod.conf

Это эффективно модернизированы моя версия базы данных 2.4.4 :)

Смежные вопросы