MongoDB中$ in的模式正则表达式

时间:2016-11-25 22:00:34

标签: regex mongodb mongodb-query pymongo

我正在尝试在MongoDB中的$ in命令中使用正则表达式。但是,根据文档,它只允许使用模式正则表达式。

当我尝试使用字符串列表这样的模式时,它会失败

collection.find({"categories": { "$in": ["/^item1$/i","/^item2$/i","/^item3$/i"] } },{"_id":0}).count()

然而,当我尝试使用它时,它可以正常工作

collection.find({"categories": { "$in": [/^item1$/i,/^item2$/i,/^item3$/i] } }).count()

这是为什么?我正在使用PyMongo并需要传递一个字符串列表。我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用PyMongo,您需要通过使用re.compile()编译每个对象的每个模式来创建正则表达式对象列表,如上所述here.但这样效率非常低。

相反,你应该使用字符类来编写正则表达式。见demo

<div ng-if="!hide" class="dropdown pull-right" uib-dropdown>
    <a uib-dropdown-toggle href="" >
    <div class="btn btn-primary-outline btn-circle btn-xs pull-right comment-button"> 
        <span class="icon icon-chevron-down"></span>
    </div>
    </a>
    <ul class="dropdown-menu " style="text-align: center;" role="menu" uib-dropdown-menu>
        <li role="divider" ng-if="showDelete"><a href="" ng-click="deleteItem($index)">delete </a></li>
        <li role="divider"><a href="" ng-click="Report()"> report</a></li>
    </ul>
</div>