MongoDb文本搜索不会返回结果

Vla*_*dak 6 mongodb

我有以下查询

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)

没有结果.

Cri*_*scu 4

文档中:

运算$text符匹配完整的词干单词。因此,如果文档字段包含单词blueberry ,则对术语blue 的搜索 将不匹配。不过,蓝莓或蓝莓会很相配。

如果要查找v字段中包含a的记录email,可以进行$regex匹配:

db.Profiles.find({  "email" : { "$regex" : /v/ } })
Run Code Online (Sandbox Code Playgroud)

  • @MongoUser101 你有这个说法的来源吗?http://docs.mongodb.org/v3.0/reference/operator/query/regex/#index-use 的状态不同,非常不同。 (2认同)