2013-08-30 3 views
2

Я triying удалить поле в большом документе, поэтому я хотел бы сделать что-то:MongoDB драйвер рубин, удалить поле в документе

collection.update({'_id' => @id}, {"$unset" => {'herField'}) 

Но это не представляется возможным. Я не хочу переписывать весь документ, любую идею?

EDIT: Я использую https://github.com/mongodb/mongo-ruby-driver

ответ

2

Ваш синтаксис выглядит немного неправильно. В соответствии с документами:

collection.update({ _id: @id }, { $unset: { herField: true } }, { multi: true }); 

Нужна опция «multi», если вы хотите обновить несколько документов. Например. из всех записей в этой коллекции.

http://docs.mongodb.org/manual/reference/operator/unset/#op._S_unset

+0

Я использую https://github.com/mongodb/mongo-ruby-driver. И я просто редактирую один документ. – ie8888

+0

@ ie8888: Работает ли он, если вы используете что-то в '$ unset', это правда в смысле JavaScript? Скажем '{$ unset: {herField: true}'. –

+0

Я не использую Javascript, я использую Ruby. Когда я запускал свой код, я получаю указанный модификатор Invalid: $ unset (Mongo :: OperationFailure) – ie8888

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