激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - MongoDB - mongo中模糊查詢的綜合應(yīng)用

mongo中模糊查詢的綜合應(yīng)用

2020-05-22 17:53迎風(fēng)而來 MongoDB

這篇文章主要給大家介紹了關(guān)于mongo中模糊查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mongodb具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

以下是一個mongo查詢的綜合應(yīng)用,即介紹一個生產(chǎn)中實(shí)際應(yīng)用的模糊查詢,當(dāng)然其實(shí)也很簡單,主要用到mongo中的模糊查詢和$or查詢,以及并的關(guān)系,下面是一個mongo中的一條記錄

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
 "_id" : "ffe6a068-9043-4334-97d2-75387340e655",
 "file_id" : "ffe6a068-9043-4334-97d2-75387340e655",
 "name" : "中國正大",
 "update_time" : NumberInt(1554975642),
 "create_time" : NumberInt(1554975642),
 "content" : "中國正大相關(guān)信息",
 "file_url" : "",
 "file_type" : "",
 "user_ids" : [
 1.0,
 10.0
 ],
 "group_ids" : [
 
 ],
 "is_common" : NumberInt(0),
 "confidence" : -1.0,
 "obj_id" : "",
 "source" : "",
 "content_time" : "",
 "author" : "",
 "summary" : "",
 "info_type" : "00",
 "sub_info_type" : "",
 "title" : "",
 "word_num" : NumberInt(8)
}

對上面一條記錄或者更多條記錄我們生產(chǎn)中的需求是:查詢出集合中(mongo中的集合即是mysql中的表),name或content中包含"正大"二字的記錄(關(guān)鍵詞即是用戶隨機(jī)輸入的,其實(shí)是一個變量),并且時間戳的值大于某一個開始時間和某一個結(jié)束時間(這個也是用戶在前端進(jìn)行選擇,然后我們拿到前端的請求來進(jìn)行查詢的),并且文件的類型即info_type字段的值為"00",“00”代表的是word也是前端用戶選擇后我們獲取的條件之一,當(dāng)然還有其他條件想進(jìn)行嘗試可以自由發(fā)揮

下面就是使用mongo語句進(jìn)行實(shí)現(xiàn)的上面的需求:

?
1
db.getCollection("subscribe_test").find({$or:[{"name":{"$regex":"正大"}},{"content":{"$regex":"正大"}}],"update_time":{$gte:1,$lte:2000000000},info_type:"00"})

對于查詢我們有的時候會選擇在程序中進(jìn)行,有的小伙伴會問上面的mongo語句怎么在編程語言中進(jìn)行實(shí)現(xiàn),下面是用python語言中進(jìn)行實(shí)現(xiàn)的,我們會引用python中操作mongo的一個模塊即pymongo模塊可以使用pip install pymongo在控制臺或cmd中進(jìn)行一鍵安裝,至于如何使用也很簡單,可以自行百度或者訪問我的另一篇博客:pymono的簡單使用,下面附上用python代碼實(shí)現(xiàn)上面需求的業(yè)務(wù)代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import pymongo
import re
# 創(chuàng)建數(shù)據(jù)庫連接
client = pymongo.MongoClient(host='127.0.0.1', port=8014) #填寫自己本機(jī)數(shù)據(jù)庫的ip和port或者遠(yuǎn)程服務(wù)器數(shù)據(jù)庫的ip和port
# 指定數(shù)據(jù)庫db1,沒有則創(chuàng)建數(shù)據(jù)庫db1
db = client.dataretrieve
#指定數(shù)據(jù)庫中指定的表
collection=db.subscribe_test
 
"""1、對表中的數(shù)據(jù)進(jìn)行查詢"""
"""
db.collection.find(query, projection)
query :可選,使用查詢操作符指定查詢條件
projection :可選,使用投影操作符指定返回的鍵。查詢時返回文檔中所有鍵值, 只需省略該參數(shù)即可(默認(rèn)省略)。
"""
query = {}
query["$or"] = [
 {"name": re.compile("正大")},
 {"content": re.compile("正大")},
]
query["file_type"] = "00"
query["update_time"] = {"$gte": 0,"$lte": 2000000000}
row=collection.find(filter=query)
for r in row:
 print(r["content"])

下面是生產(chǎn)中實(shí)際的開發(fā)代碼,只供參考,只是把上面的一些常量,換成了從前端請求的數(shù)據(jù):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def person_handler(req_params, page_size, search_offset):
 """
 去mongo中查詢個人數(shù)據(jù)
 :param req_params:
 :param page_size:
 :param search_offset:
 :return:
 """
 results = []
 query = {}
 update_time = {}
 if 'start_time' in req_params and req_params["start_time"]:
 start_time = int(req_params["start_time"])
 update_time['$gte'] = start_time
 if 'end_time' in req_params and req_params['end_time']:
 end_time = int(req_params["end_time"])
 update_time['$lte'] = end_time
 if update_time:
 query["update_time"] = update_time
 if 'file_type' in req_params and req_params['file_type']:
 query["file_type"] = req_params["file_type"]
 if 'user_ids' in req_params and req_params['user_ids']:
 query['user_ids'] = int(req_params['user_id'])
 serch_keywords = req_params["search_keywords"]
 
 query["$or"] = [
 {"name": re.compile(serch_keywords)},
 {"content": re.compile(serch_keywords)},
 ]
 print(query)
 result = person_mongodao.search(filter=query).skip(search_offset).limit(page_size)
 count = person_mongodao.search(filter=query).skip(search_offset).limit(page_size).count()
 for row in result:
 results.append(row)
 additions = {"word_segs": req_params["search_keywords"], "remind": 0}
 print("查詢結(jié)果", results)
 return results, additions, count

如果有小伙伴說我用的不是python語言譬如java用代碼怎么實(shí)現(xiàn)呢?那么如果你會寫mysql來實(shí)現(xiàn)上面的需求的話本博主可以推薦你使用mongo的一款可視化工具Studio 3T來將mysql語句轉(zhuǎn)換成mongo語句,python語句,java語句等

mongo中模糊查詢的綜合應(yīng)用

mysql語句也類似mongo語句有一個控制臺可以來進(jìn)行書寫mysql語句,然后進(jìn)行查詢之后將結(jié)果進(jìn)行轉(zhuǎn)換

mongo中模糊查詢的綜合應(yīng)用

總結(jié)

以上就是關(guān)于mongo模糊查詢的簡單使用,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對服務(wù)器之家的支持。

原文鏈接:http://www.cnblogs.com/sui776265233/p/10694958.html

延伸 · 閱讀

精彩推薦
  • MongoDB遷移sqlserver數(shù)據(jù)到MongoDb的方法

    遷移sqlserver數(shù)據(jù)到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數(shù)據(jù)到MongoDb的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDBMongoDB憑什么躋身數(shù)據(jù)庫排行前五

    MongoDB憑什么躋身數(shù)據(jù)庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續(xù)雄踞榜單前五,這個增幅在全榜僅次于PostgreSQL的77.99,而其相對于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
  • MongoDBMongodb實(shí)現(xiàn)定時備份與恢復(fù)的方法教程

    Mongodb實(shí)現(xiàn)定時備份與恢復(fù)的方法教程

    這篇文章主要給大家介紹了Mongodb實(shí)現(xiàn)定時備份與恢復(fù)的方法教程,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBMongoDB中javascript腳本編程簡介和入門實(shí)例

    MongoDB中javascript腳本編程簡介和入門實(shí)例

    作為一個數(shù)據(jù)庫,MongoDB有一個很大的優(yōu)勢——它使用js管理數(shù)據(jù)庫,所以也能夠使用js腳本進(jìn)行復(fù)雜的管理——這種方法非常靈活 ...

    MongoDB教程網(wǎng)6982020-04-24
  • MongoDB分布式文檔存儲數(shù)據(jù)庫之MongoDB分片集群的問題

    分布式文檔存儲數(shù)據(jù)庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲數(shù)據(jù)庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBMongoDB 內(nèi)存使用情況分析

    MongoDB 內(nèi)存使用情況分析

    都說 MongoDB 是個內(nèi)存大戶,但是怎么知道它到底用了多少內(nèi)存呢...

    MongoDB教程網(wǎng)10002020-09-29
  • MongoDBmongodb基本命令實(shí)例小結(jié)

    mongodb基本命令實(shí)例小結(jié)

    這篇文章主要介紹了mongodb基本命令,結(jié)合實(shí)例形式總結(jié)分析了MongoDB數(shù)據(jù)庫切換、查看、刪除、查詢等基本命令用法與操作注意事項(xiàng),需要的朋友可以參考下...

    dawn-liu3652020-05-26
主站蜘蛛池模板: 国产精品一区二区羞羞答答 | 亚洲欧美在线看 | 91短视频在线观看 | 欧美日韩在线视频一区 | 一区小视频 | 免费视频精品一区二区 | 在线免费观看精品 | 国产精品亚洲综合一区二区三区 | 国产一区二区亚洲 | 成人免费乱码大片a毛片视频网站 | 黄色网战入口 | 欧美高清一级片 | 一区二区三区小视频 | 视频一区二区视频 | 欧美国产一区二区三区激情无套 | 久久精品视频8 | 欧美精品久久久久久久久久 | 日韩字幕在线观看 | 草草久| 国产肥熟 | 国产超碰人人做人人爱ⅴa 色天天综合网 | 久草手机视频在线观看 | 日日噜噜噜夜夜狠狠久久蜜桃 | 天天夜夜操操 | 中文字幕www. | 久久精品一区二区三区四区五区 | 最近免费观看高清韩国日本大全 | 欧美成人免费电影 | www.狠狠操.com | 最新中文字幕第一页视频 | 国产精品久久久久久久久久 | 久久国产精品免费视频 | 成年人网站国产 | 片在线观看 | 7777久久香蕉成人影院 | 深夜免费视频 | 欧美一级片在线 | 竹内纱里奈和大战黑人 | 欧美黑人伦理 | 免费观看9x视频网站在线观看 | 91精品国产九九九久久久亚洲 |