mongoose文本search不返回结果

我正在尝试在组合索引上创build一个简单的文本search。

这是我的mongoose模型:

// models/user.js // load the things we need var mongoose = require('mongoose'); // define the schema for our user model var itemSchema = mongoose.Schema({ globalinfo : { ownerobjectid : String, name : String, desc : String, startdate : Date, enddate : Date, price : Number, status : String, statuscss : String, dateadded : Date, locationline1 : String, locationline2 : String, locationline3 : String, locationtown : String, locationpostcode : String, locationlatitude : Number, locationlongitude : Number, termsapprove : Boolean, friendlyurl : String, itemsearchinfo : String, } }); itemSchema.index( { "globalinfo.itemsearchinfo": "text", "globalinfo.name": "text" } ); // schema level // create the model for users and expose it to our app module.exports = mongoose.model('Item', itemSchema); 

这是我的search查询:

 Item.find( { $text : { $search : "item" } } ).exec(function(err, items) { 

问题是查询总是返回没有结果!

我在模型中有一个文件:

 { "_id" : ObjectId("56781cb97ae92ff08b55d4f1"), "globalinfo" : { "friendlyurl" : "item-a", "dateadded" : ISODate("2015-12-21T15:37:29.591Z"), "itemsearchinfo" : "Woop lawn mower for rent!\nYou should use this space to describe the item in detail and make it appealing\nTo the renter write your stuff here.", "statuscss" : "na", "status" : "Not Available Yet", "locationlongitude" : null, "locationlatitude" : null, "locationpostcode" : "test", "locationtown" : "test", "locationline3" : "", "locationline2" : "", "locationline1" : "test", "termsapprove" : true, "price" : 3, "enddate" : ISODate("2015-12-31T00:00:00.000Z"), "startdate" : ISODate("2015-12-23T00:00:00.000Z"), "desc" : "\n <h3>woop Lawn Mower for Rent! </h3>\n <p>You should use this space to describe the item in detail and make it appealing to the renter <strong>Write your stuff here.</strong> \n </p>", "name" : "item A", "ownerobjectid" : "56781909155232b7871edb17" }, "__v" : 0 } 

db.items.getIndexes()的输出:

 [ { "v" : 1, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "whatplot_local_db.items" }, { "v" : 1, "key" : { "_fts" : "text", "_ftsx" : 1 }, "name" : "itemsearchinfo_text_name_text", "ns" : "whatplot_local_db.items", "background" : true, "weights" : { "itemsearchinfo" : 1, "name" : 1 }, "default_language" : "english", "language_override" : "language", "textIndexVersion" : 2 } ] 

你有没有尝试重新索引集合?

Mongo命令:

 db.collection.reIndex(); 

问题在于我索引的方式。 使用双引号不起作用:

 itemSchema.index( { "globalinfo.itemsearchinfo": "text", "globalinfo.name": "text" } ); // schema level 

不过单引号的确如此:

 itemSchema.index( { 'globalinfo.itemsearchinfo': "text", 'globalinfo.name': "text" } ); // schema level