网站地图    收藏   

主页 > 后端 > MongoDB >

mongo中模糊查询的综合应用

来源:自学PHP网    时间:2019-08-01 18:22 作者:小飞侠 阅读:

[导读] mongo中模糊查询的综合应用...

前言

{ 
 "_id" : "ffe6a068-9043-4334-97d2-75387340e655", 
 "file_id" : "ffe6a068-9043-4334-97d2-75387340e655", 
 "name" : "中国正大", 
 "update_time" : NumberInt(1554975642), 
 "create_time" : NumberInt(1554975642), 
 "content" : "中国正大相关信息", 
 "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)
}

下面就是使用mongo语句进行实现的上面的需求:

db.getCollection("subscribe_test").find({$or:[{"name":{"$regex":"正大"}},{"content":{"$regex":"正大"}}],"update_time":{$gte:1,$lte:2000000000},info_type:"00"})在控制台或cmd中进行一键安装,至于如何使用也很简单,可以自行百度或者访问我的另一篇博客:pymono的简单使用,下面附上用python代码实现上面需求的业务代码:
import pymongo
import re
# 创建数据库连接
client = pymongo.MongoClient(host='127.0.0.1', port=8014) #填写自己本机数据库的ip和port或者远程服务器数据库的ip和port
# 指定数据库db1,没有则创建数据库db1
db = client.dataretrieve
#指定数据库中指定的表
collection=db.subscribe_test

"""1、对表中的数据进行查询"""
"""
db.collection.find(query, projection)
query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
"""
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"])
def person_handler(req_params, page_size, search_offset):
 """
 去mongo中查询个人数据
 :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("查询结果", results)
 return results, additions, count

总结

以上就是关于mongo模糊查询的简单使用,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对自学php网的支持。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论