2012-08-21 3 views
0

У меня есть документ под названием login_info. Она имеет два поля:Удаление строки из встроенного документа в движке mongo

  • имя
  • пароль
  • Расположение

Location представляет собой встроенный документ с двумя полями:

  • даты и времени
  • города

Во встроенном документе есть данные, и я хочу удалить из него строку. , например: я должен удалить все строки с положением «Канада». Как я могу сделать это в монго-движке? любая помощь

+0

В MongoDB нет строки. Что вы хотите удалить? Полный документ, который содержит location.location = 'canada'? Только поддокумент? Кстати, у вас не должно быть поля с тем же именем в документе и в поддокументе, это лучший способ получить ошибку;) – AlphaB

+0

Да, я просто хочу удалить только поддокумент. да, я изменю имя «местоположение» на «город». –

ответ

1

Попробуйте

db.login_info.update({}, {$pull:{location:{city:"Canada"}}}) 

Ok попробовать это вместо того, чтобы

db.login_info.update({ "location.city" : { $exists : true } }, { $unset : { "location.city" : "Canada" } }, false, true); 

Это удалит все "строки", где город является "Канада".

+0

, если вам нужно изменить несколько документов, добавьте модификатор «multi». – AlphaB

+0

hey jamjam его не работает –

+0

Знак $ в обоих кодах показывает ошибку. его показывает лексическую ошибку. –

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