Text Index nicknames. , , . , . , MongoDb $text $search, MongoDb , nicknames . MongoDb $regex, .
:
- script
football.js. teams .
var db = connect("localhost:27017/football");
db.teams.createIndex({"nicknames":"text"});
db.teams.insert({
name: 'Real Madrir',
nicknames: ['Real', 'Madrid', 'Real Madrir' ]
})
db.teams.insert({
name: 'Fake Madrir',
nicknames: ['Fake']
})
, football.js, script MongoDb, mongo football.js.
mongo , MongoDb football, use football.
, , db.teams.find({"$text":{"$search":"<search-text>"}})
> use football
> db.teams.find({"$text":{"$search":"Real"}})
> db.teams.find({"$text":{"$search":"Fake"}})
Regex
, . mongodb $regex:
db.teams.find({"nicknames": {"$regex": /Real/}})
db.teams.find({"nicknames": {"$regex": /Real Madrir/}})
db.teams.find({"nicknames": {"$regex": /Fa/}})
db.teams.find({"nicknames": {"$regex": /ke/}})
Mongoose
, NodeJS, mongoose:
var searchText = "Madrir";
var searchRegex = new RegExp(searchText);
var fullTextSearchOptions = {
"$text":{
"$search": searchText
}
};
var regexSearchOptions = {
"nicknames": {
"$regex": searchRegex
}
};
Team.find(fullTextSearchOptions, function(err, teams){
if(err){
}else if(teams){
}
})
Team.find(regexSearchOptions, function(err, teams){
if(err){
}else if(teams){
}
})