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番目の要素)
ファジイクエリ
正確な検索
マルチ条件ファジイクエリ
ファジイクエリは、指定した文字列が指定したモードと一致するかどうかを実現するデータベースの基本操作の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){}