MongoDB多條件模糊查詢示例代碼
前言
模糊查詢是數(shù)據(jù)庫的基本操作之一,實(shí)現(xiàn)對(duì)給定的字符串是否與指定的模式進(jìn)行匹配。如果字符完全匹配,可以用=等號(hào)表示,如果部分匹配可認(rèn)為是一種模糊查詢。在關(guān)系型數(shù)據(jù)中,通過SQL使用like ‘%fens%'的語法。那么在mongodb中我們應(yīng)該如何實(shí)現(xiàn)模糊查詢的效果呢。
查詢條件
關(guān)鍵字 | 說明 |
---|---|
$or | 或關(guān)系 |
$nor | 或關(guān)系取反 |
$gt | 大于 |
$gte | 大于等于 |
$lt | 小于 |
$lte | 小于等于 |
$ne | 不等于 |
$in | 在多個(gè)值范圍內(nèi) |
$nin | 不在多個(gè)值范圍內(nèi) |
$all | 匹配數(shù)組中多個(gè)值 |
$regex | 正則,用于模糊查詢 |
$size | 匹配數(shù)組大小 |
$maxDistance | 范圍查詢,距離(基于LBS) |
$mod | 取模運(yùn)算 |
$near | 鄰域查詢,查詢附近的位置(基于LBS) |
$exists | 字段是否存在 |
$elemMatch | 匹配內(nèi)數(shù)組內(nèi)的元素 |
$within | 范圍查詢(基于LBS) |
$box | 范圍查詢,矩形范圍 |
$center | 范圍查詢,圓形范圍 |
$centerSphere | 范圍查詢,球形范圍 |
$slice | 查詢字段集合中的元素(比如從第幾個(gè)之后,第N到第M個(gè)元素) |
模糊查詢
精準(zhǔn)查詢
//Mongodb數(shù)據(jù)庫表 const systemUser = require('../../models/user'); systemUser.find({name:'xiaoming'}).exec(function(err,rs){}
多條件模糊查詢
//Mongodb數(shù)據(jù)庫表 const systemUser = require('../../models/user'); //前端傳入的要查詢的關(guān)鍵字 var name = req.query.name; var page = req.query.page || 1; //當(dāng)前頁數(shù) var limitNums = 10; //指定每一頁查詢的條數(shù) page = parseInt(page); var skipNums = (page - 1) * limitNums; //跳過指定數(shù)量 //正則匹配 i忽略大小寫 var reg = new RegExp(name, "i"); var _filter = { //多字段匹配 $or: [ {name: {$regex: reg}}, {description: {$regex: reg}}, {owner: {$regex: reg}}, ] } systemUser.find(_filter). //跳過指定數(shù)量的數(shù)據(jù) skip(skipNums). //指定從MongoDB中讀取的記錄條數(shù)。 limit(limitNums). sort({createTime:-1}). exec(function(err,rs){}
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
MongoDB通過查詢與游標(biāo)徹底玩轉(zhuǎn)分布式文件存儲(chǔ)
MongoDB最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引,這篇文章主要介紹了MongoDB查詢與游標(biāo),徹底玩轉(zhuǎn)分布式文件存儲(chǔ),需要的朋友可以參考下2023-01-01Mongodb 崩潰報(bào)錯(cuò) Too many open files的問題解析
這篇文章主要介紹了Mongodb 崩潰報(bào)錯(cuò) Too many open files的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Spring Boot中使用MongoDB數(shù)據(jù)庫的方法
MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bjson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大2018-02-02MongoDB中強(qiáng)大的統(tǒng)計(jì)框架Aggregation使用實(shí)例解析
這篇文章主要介紹了MongoDB中強(qiáng)大的統(tǒng)計(jì)框架Aggregation使用實(shí)例解析,文中舉了Python和Java使用Aggregation的數(shù)據(jù)統(tǒng)計(jì)例子進(jìn)行講解,需要的朋友可以參考下2016-01-01Mongodb文檔和數(shù)組的通配符索引應(yīng)用小結(jié)
Mongodb的通配符索引,為靈活可變的Mongodb數(shù)據(jù)結(jié)構(gòu)提供了高效的查詢方法,本文結(jié)合Mongodb官方文檔,詳細(xì)介紹在嵌入式文檔和數(shù)組上,通配符索引的結(jié)構(gòu),感興趣的朋友一起看看吧2024-07-07MongoDB時(shí)間戳轉(zhuǎn)日期及日期分組實(shí)例代碼
時(shí)間戳(timestamp)通常是一個(gè)字符序列,唯一地標(biāo)識(shí)某一刻的時(shí)間,下面這篇文章主要給大家介紹了關(guān)于MongoDB時(shí)間戳轉(zhuǎn)日期及日期分組的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05MongoDB排序時(shí)內(nèi)存大小限制與創(chuàng)建索引的注意事項(xiàng)詳解
在數(shù)據(jù)量超大的情形下,任何數(shù)據(jù)庫系統(tǒng)在創(chuàng)建索引時(shí)都是一個(gè)耗時(shí)的大工程,下面這篇文章主要給大家介紹了關(guān)于MongoDB排序時(shí)內(nèi)存大小限制與創(chuàng)建索引的注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下2022-05-05MongoDB分片在部署與維護(hù)管理中常見的事項(xiàng)總結(jié)大全
分片(sharding)是指將數(shù)據(jù)拆分,將其分散存放在不同的機(jī)器上的過程。下面這篇文章主要給大家總結(jié)介紹了關(guān)于MongoDB分片在部署與維護(hù)管理中常見事項(xiàng)的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-09-09mongodb3.4集群搭建實(shí)戰(zhàn)之高可用的分片+副本集
這篇文章主要給大家介紹了關(guān)于mongodb3.4集群搭建實(shí)戰(zhàn)之高可用的分片+副本集的相關(guān)資料,文中通過示例代碼將實(shí)現(xiàn)的步驟一步步的介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08