mongodb $ pull-соответствие с регулярным выражением не работает - PullRequest
4 голосов
/ 09 июня 2011

Я пытаюсь выполнить обновление списка, желая получить совпадение с помощью регулярного выражения. Тот факт, что критерии / приложение / соответствует для .find, но не для .update предполагают, что я делаю что-то не так. Есть ли другой способ получить похожие результаты?

> db.things.find({items:/app/})
{ "_id" : 3, "items" : [ "appstore.com", "engineapp.com", "asp.ca" ] }
> db.things.update({}, { $pull: { items: /app/} })
> db.things.find({items:/app/})
{ "_id" : 3, "items" : [ "appstore.com", "engineapp.com", "asp.ca" ] }

Ответы [ 2 ]

10 голосов
/ 10 июня 2011

Вот код, который вы ищете:

db.things.update({}, {$pull : { items: {$regex: 'app' } } })

На основе информации, извлеченной из $pull документации .

Я добавил тестовый скрипт здесь .

0 голосов
/ 10 июня 2011

Вы можете использовать только $ pull константные значения из массива, но не значения, соответствующие каким-либо критериям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...