我正在使用mongoDB 3.2版。并且我想检查字符串数组中是否存在字符串,我想使用正则表达式,以便如果给定字符串的一部分仅存在于数组中的字符串中,则应返回该记录。 这是一个记录示例:
{
name: "initiative 1",
portfolioItems: ["Non clinical", "ITS portfolio", "Lean"]
}
以下查询不起作用:
db.collection.aggregate([
{
$match:
{ 'portfolioItems' : { $in: [/term/] } }
}
])
有什么可以实现的吗?
答案 0 :(得分:1)
尝试这个。
db.collection.aggregate([
{
$match:
{"portfolioItems":{'$regex':"^it", '$options': 'i'}}
}
])
符号^
用于从字符串的第一个字符串开始。如果您不需要它。您可以删除它。
您的查询成为
{
$match:
{"portfolioItems":{'$regex':"^"+term, '$options': 'i'}}
}
答案 1 :(得分:0)
您必须匹配数组每个元素中的模式。 试试这个:
{ 'portfolioItems' : { $regex: [/term/] } }