2017-03-01 58 views
0

我有一個搜索框,我想返回任何匹配使用貓鼬搜索的JSON對象。查詢貓鼬找到所有匹配「req.body.search」的JSON對象

現在我只能搜索對象的名稱,然後返回一個JSON對象匹配所搜索姓名:

var mongoose = require('mongoose'); 
var App = mongoose.model('App'); 
var express = require('express'); 
var bodyParser = require('body-parser'); 

var exp = express(); 

exp.use(bodyParser.json()); 
exp.use(bodyParser.urlencoded({ 
    extended: true 
})); 


module.exports.searchApp = function(req, res) { 
    App.findOne({ 
    'app_name': req.body.search 
    }).exec(function(err, app) { 
    res.status(200); 
    res.json(app); 
    }); 
}; 

如何撰寫查詢將返回任何JSON對象匹配搜索使用貓鼬?

+0

你可以給我們一個查詢術語和幾個JSON對象的例子,你會期望回來嗎? – kbariotis

+0

「APP_ID」:1, 「APP_NAME」: 「Sonsing」, 「APP_DEVELOPER開發」: 「Skynoodle」, 「APP_VERSION」: 「2.8」, 「價格」:16 }, { 「APP_ID」: 2, 「APP_NAME」: 「Fintone」, 「APP_DEVELOPER開發」: 「Trupe」, 「APP_VERSION」: 「0.8.9」, 「價格」:9 },{ 「APP_ID」:3, 「app_name」:「Overhold」, 「app_developer」:「Tagopia」, 「app_version」:「6.31」, 「price」:58 }, – haverdaden

+0

使用' find'而不是'findOne' –

回答

0

您可以使用蒙戈的FTS功能搜索到多個領域:

首先,你必須創建一些text indexes爲您想包括在您的搜索領域。

然後使用text operator您將使用搜索詞進行查詢,Mongo將在您上面指定的文本索引中搜索該詞。

App.find({ 
    $text: { 
     $search: req.body.search 
    } 
})