我有以下查询
db.Profiles.find({ "$text" : { "$search" : "vk" } })
它给了我以下结果
{
"_id" : ObjectId("55e999a5bd1f3926586799bb"),
"created" : ISODate("2015-09-04T13:16:21.555Z"),
"userId" : 4790,
"email" : "vk@mydomain.com",
"firstName" : "",
"lastName" : "",
"phoneNumber" : "",
"isUnsubscribed" : false,
"isAboveLimit" : true,
"status" : 0,
"userAgent" : 0,
"isDeleted" : false,
"p2l" : [
{
"listId" : 31613,
"status" : 25,
"subscriptionDate" : ISODate("2015-09-17T14:04:33.660Z")
}
],
"countryId" : 0,
"cf" : []
}
但以下不是
db.Profiles.find({ "$text" : { "$search" : "v" }})
没有结果。
答案 0 :(得分:4)
$text
运算符匹配完整的词干。所以,如果一个 文档字段包含单词 blueberry ,搜索术语 blue 不会匹配。但是,蓝莓或蓝莓会匹配。
如果您想在v
字段中找到包含email
的记录,可以进行$regex
匹配:
db.Profiles.find({ "email" : { "$regex" : /v/ } })