MongoDb文本搜索不会返回结果

时间:2015-09-23 14:41:23

标签: mongodb

我有以下查询

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" }})

没有结果。

1 个答案:

答案 0 :(得分:4)

来自the documentation

  

$text运算符匹配完整的词干。所以,如果一个   文档字段包含单词 blueberry ,搜索术语 blue   不会匹配。但是,蓝莓或蓝莓会匹配。

如果您想在v字段中找到包含email的记录,可以进行$regex匹配:

db.Profiles.find({  "email" : { "$regex" : /v/ } })