MongoDBマルチ条件ブラークエリ


前言
ファジイクエリは、指定した文字列が指定したモードと一致するかどうかを実現するデータベースの基本操作の1つです.文字が完全に一致している場合は、=等号で表すことができ、部分的に一致している場合はあいまいなクエリーとみなすことができます.リレーショナル・データでは、SQLでlike'%fens%'の構文を使用します.ではmongodbでは、ファジイクエリの効果をどのように実現すればいいのでしょうか.
クエリー条件
キーワード
説明
$or
または関係
$nor
または関係が逆になる
$gt
より大きい
$gte
以上
$lt
より小さい
$lte
以下
$ne
等しくない
$in
複数の値の範囲内
$nin
複数の値の範囲外
$all
配列内の複数の値の一致
$regex
正規、ファジイクエリー
$size
配列サイズの一致
$maxDistance
範囲クエリー、距離(LBSベース)
$mod
かたとりえんざん
$near
近隣クエリー、クエリー付近の場所(LBSベース)
$exists
フィールドが存在するかどうか
$elemMatch
内部配列内の要素を一致させる
$within
範囲クエリー(LBSベース)
$box
範囲クエリー、長方形範囲
$center
範囲クエリー、円形範囲
$centerSphere
範囲クエリー、球形範囲
$slice
クエリー・フィールド・セットの要素(たとえば、数番目以降、N番目からM番目の要素)
ファジイクエリ
正確な検索
//Mongodb    
const systemUser = require('../../models/user'); 
systemUser.find({name:'xiaoming'}).exec(function(err,rs){}

マルチ条件ファジイクエリ
//Mongodb    
const systemUser = require('../../models/user');
//            
var name = req.query.name;
var page = req.query.page || 1; //    
var limitNums = 10; //          
page = parseInt(page);
var skipNums = (page - 1) * limitNums; //      
//     i     
var reg = new RegExp(name, "i");
var _filter = {
    //     
    $or: [
        {name: {$regex: reg}},
        {description: {$regex: reg}},
        {owner: {$regex: reg}},
    ]
}
systemUser.find(_filter).
//         
skip(skipNums).
//   MongoDB        。
limit(limitNums).
sort({createTime:-1}).
exec(function(err,rs){}