我阅读了这篇文章并了解了如何在mongodb中搜索记录的名字:
http://docs.mongodb.org/manual/reference/sql-comparison/
db.users.find({ firstname: /^bc/ });
但是如果我的字符串有两个单词(名字和姓氏),我如何搜索名字和姓氏。
在MySQL中,我正在使用:
SELECT * FROM profiles WHERE match(firstname, lastname) AGAINST ('".$data."');
数据包含" mike thompson"。
答案 0 :(得分:0)
db.users.find({
first_name: /^first/,
last_name: /^last/
})
这意味着匹配first_name等于first的文档,last_name等于last。
答案 1 :(得分:0)
这是我的标准用法。
它使用$或运算符。
var query = req.query.query,
queryArr = query.split(' '),
first_name,
last_name;
// Check if it is split into a first and last name
if (queryArr.length === 2) {
//create regex for first and last name
first_name = new RegExp(queryArr[0], 'i');
last_name = new RegExp(queryArr[1], 'i');
}
query = new RegExp(query, 'i');
var dbQuery = {
// Searches first_name or last_name
$or: [
{
// Searches first name based on whole query or first_name query
$or: [
{
first_name: query
},
{
first_name: first_name
}
]
},
{
// Searches last_name based on whole query or last_name query
$or: [
{
last_name: query
},
{
last_name: last_name
}
]
}
]
};
db.users.find(dbQuery, function (error, response) {
res.send(200, {
success: true,
body: response
});
});