myCollection = test.SP # 选中集合
result = myCollection.find()# 查询所有数据print(result)for r in result:# 遍历输出print r
find中的筛选参数可以有以下选择。
result = myCollection.find({"code":"LCA3M","TurnoverVol":9716})# 参数字典中有多个字段,相当于“与”,即查询code为LCA3M且TurnoverVol为9716的数据
result = myCollection.find({},{"code":0,"TurnoverVol":0})# 该方法第一个参数为{},即无过滤。但第二个参数为字典,其中每个字段对应0或1,代表是否查询文档的该字段。# 注意除id外,字段的值要不都为1要不都为0.
result = myCollection.find({"$or":[{"code":"LCA3M"},{"code":"LAH3M"}]})# 过滤参数中"$or",其后为一列表,列表中为字典,是筛选条件且为“或关系”。即,查询code为LCA3M或者为LAH3M的记录。
result = myCollection.find({"$where":"this.fields1 == this.fields2"})#相当于调用SQL中的where语句
result = myCollection.find({},{"code":1}).distinct("code")#使用distinct去重查询
find的过滤参数字段的条件键值还可以是字典,主要用法如下。
result = myCollection.find({"Low":{"$gt":10000}})# 该语句查询字段Low键值大于10000的文档。"$gt"为比较符号,代表大于。
将其他否符号归纳如下,备忘。
符号
含义
示例
$lt
小于
{“Low”: {"$lt": 10000}}
$lte
大于
{“Low”: {"$gt": 10000}}
$lte
小于等于
{‘Low’: {’$lte’: 10000}}
$gte
大于等于
{‘Low’: {’$gte’: 10000}}
$ne
不等于
{‘Low’: {’$ne’: 10000}}
$in
在范围内
{‘Low’: {’$in’: 10000}}
$nin
不在范围内
{‘Low’: {’$nin’: 10000}}
一些其他的用法,有四列,所以重新写个表格,反正都是copy的
符号
含义
示例
示例含义
$regex
匹配正则表达式
{‘name’: {’$regex’: ‘^M.*’}}
name以M开头
$exists
属性是否存在
{‘name’: {’$exists’: True}}
name属性存在
$type
类型判断
{‘age’: {’$type’: ‘int’}}
age的类型为int
$mod
数字模操作
{‘age’: {’$mod’: [5, 0]}}
年龄模5余0
$text
文本查询
{‘KaTeX parse error: Expected '}', got 'EOF' at end of input: text': {'search’: ‘Mike’}}
result = myCollection.find({"Low":{"$gt":10000}}).count()# 查询字段Low大于10000的数据条数
result = myCollection.find({"Low":{"$gt":10000}}).limit(3)# 对于查询结果只取前3条。
result = myCollection.find({"Low":{"$gt":10000}}).sort('Low', pymongo.DESCENDING)#对于查询结果进行排序。参数为字段名和排序方式
result = myCollection.find({"Low":{"$gt":10000}}).skip(2)# 偏移2, 即忽略前2条文档