我有以下查询
db.Profiles.find({ "$text" : { "$search" : "vk" } })
Run Code Online (Sandbox Code Playgroud)
它给了我以下结果
{
"_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" : []
}
Run Code Online (Sandbox Code Playgroud)
但以下情况并非如此
db.Profiles.find({ "$text" : { "$search" : "v" }})
Run Code Online (Sandbox Code Playgroud)
没有结果.
从文档中:
运算
$text符匹配完整的词干单词。因此,如果文档字段包含单词blueberry ,则对术语blue 的搜索 将不匹配。不过,蓝莓或蓝莓会很相配。
如果要查找v字段中包含a的记录email,可以进行$regex匹配:
db.Profiles.find({ "email" : { "$regex" : /v/ } })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
693 次 |
| 最近记录: |