如何在nodejs应用程序

时间:2016-02-09 10:58:37

标签: node.js mongodb indexing full-text-search

我正在尝试使用mongodb索引构建搜索模块,但不确定如何在使用mongoose创建的集合中使用它

即, db.books.createIndex({“Title”:“text”})这在mongo shell中工作正常 books是一个名为bookish的数据库内的集合

但如何在nodejs应用程序中使用它,其中我定义了很少的apis调用

var express = require('express');
var mongoose = require('mongoose');
router = express.Router();
var cors = require('cors');

module.exports = function (app) {
  app.use(router);
};

/*+++++++++++++++++++++++++++++++++++++++++  Defining Model  Starts++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
Books =  mongoose.model('Books');

/*+++++++++++++++++++++++++++++++++++++++++  Defining Model  Stops++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/





/*+++++++++++++++++++++++++++++++++++++++++   Router  Starts++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
router.route('/api/book/')
  .get(function(req,res){
    Books.find({},function(err,books){
      console.log( req.params.id);
      res.send(books);
    })
  });

router.route('/api/delete/book/:id')
  .post(function(req,res){
    console.log("delete id"+req.params.id)
    Books.findOne({bookId: req.params.id}, function(err,updateRemoveBook) {
      updateRemoveBook.isDeleteBook= 0;
      updateRemoveBook.save();
      res.send(updateRemoveBook);
    });
  });

router.route('/cerateIndex')
Books.createIndex({"subject":"text","content":"text"})

在这个文件中如何在这本书上创建索引,即这里的书籍是模型的参考,但创建索引应该在集合上调用

我无法做到像

db.Books.createIndex({"subject":"text","content":"text"})

我指的是这篇文章来执行索引 http://code.tutsplus.com/tutorials/full-text-search-in-mongodb--cms-24835

不确定如何将它与nodejs应用程序一起使用请提供如何解决它的建议点一些可以展示相同的样本

1 个答案:

答案 0 :(得分:0)

您可以使用模型架构的 index() 方法创建文本索引:

bookSchema = new mongoose.Schema({"subject": String, "content": String},{"collection": "books"});    
bookSchema.index({ "subject": "text", "content": "text" });
Books =  mongoose.model('Books', bookSchema);