将 $text 与 mongoose 一起用于文本搜索不起作用
use of $text with mongoose for text search is not working
我正在尝试使用 $text 进行文本搜索,如下所示
var express = require('express');
var app = express();
var mongoose = require('mongoose');
var bodyparser = require('body-parser');
var port = process.env.PORT || 8000;
var router = express.Router();
var cors = require('cors');
var Schema = mongoose.Schema;
var router = express.Router();
var exec = require('exec');
app.use(bodyparser.json());
//establish the connection
var db=mongoose.connect('mongodb://localhost/book_publisherSearch');
//define the schema
var authorSchema = new mongoose.Schema(
{
authorId : Number,
Description : String,
firstName : String
});
authorSchema.index({ firstName: 'text'});
var Authors= mongoose.model('Authors',authorSchema);
router.route('/search')
.get(function(req,res){
Authors.find({ $text : { $search : "Bharath" }},function(err,authors){
console.log("inside search");
res.send(authorss);
})
})
app.use(router);
app.listen(port);
但是当 运行 我得到的错误是
c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\base.js:246
throw message;
^
TypeError: Cannot read property 'length' of undefined
at processResults (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1581:31)
at c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1619:20
at c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1157:7
at c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1890:9
at Server.Base._callHandler (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\base.js:448:41)
at c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:481:18
at MongoReply.parseBody (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\responses\mongo_reply.js:68:5)
at null.<anonymous> (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:439:20)
at emit (events.js:107:17)
at null.<anonymous> (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\connection_pool.js:201:13)
Process finished with exit code 1
在数据库中我有一个 Authors 集合,其中很少有包含名字的集合有 Bharath
请指出我做错了什么谢谢
在我添加了一些文档后,集合中没有文档,它工作正常
我正在尝试使用 $text 进行文本搜索,如下所示
var express = require('express');
var app = express();
var mongoose = require('mongoose');
var bodyparser = require('body-parser');
var port = process.env.PORT || 8000;
var router = express.Router();
var cors = require('cors');
var Schema = mongoose.Schema;
var router = express.Router();
var exec = require('exec');
app.use(bodyparser.json());
//establish the connection
var db=mongoose.connect('mongodb://localhost/book_publisherSearch');
//define the schema
var authorSchema = new mongoose.Schema(
{
authorId : Number,
Description : String,
firstName : String
});
authorSchema.index({ firstName: 'text'});
var Authors= mongoose.model('Authors',authorSchema);
router.route('/search')
.get(function(req,res){
Authors.find({ $text : { $search : "Bharath" }},function(err,authors){
console.log("inside search");
res.send(authorss);
})
})
app.use(router);
app.listen(port);
但是当 运行 我得到的错误是
c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\base.js:246
throw message;
^
TypeError: Cannot read property 'length' of undefined
at processResults (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1581:31)
at c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1619:20
at c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1157:7
at c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\db.js:1890:9
at Server.Base._callHandler (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\base.js:448:41)
at c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:481:18
at MongoReply.parseBody (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\responses\mongo_reply.js:68:5)
at null.<anonymous> (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\server.js:439:20)
at emit (events.js:107:17)
at null.<anonymous> (c:\Users\zendynamix\IdeaProjects\node_modules\mongoose\node_modules\mongodb\lib\mongodb\connection\connection_pool.js:201:13)
Process finished with exit code 1
在数据库中我有一个 Authors 集合,其中很少有包含名字的集合有 Bharath
请指出我做错了什么谢谢
在我添加了一些文档后,集合中没有文档,它工作正常