mongodb $pull matching with regexp not working
I am trying to perform an update on a list, willing to get a match with regexp. The fact that the criteria /app/ matches for .find but not for .update suggest i am doing something wrong. Is there any other way to get similar results?
> 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", "engineap开发者_开发问答p.com", "asp.ca" ] }
Here's the code you're looking for:
db.things.update({}, {$pull : { items: {$regex: 'app' } } })
Based on info pulled from the $pull
documentation.
I've added a test script here.
You can only $pull constant values from an array but not values matching any criteria.
精彩评论