mongo-pymongo 数组操作
来源:互联网 发布:苹果安装windows系统 编辑:程序博客网 时间:2024/05/01 21:09
因为刚刚开始使用mongodb时时间比较急,没有比较系统的去学习文档,所以当时在对数组操作时都是自己写代码去操作,所以专门把数组操作单独记录下来
https://docs.mongodb.com/manual/tutorial/query-documents/#read-operations-arrays
插入测试数据
db.users.insert( [ { _id: 1, name: "sue", age: 19, type: 1, status: "P", favorites: { artist: "Picasso", food: "pizza" }, finished: [ 17, 3 ], badges: [ "blue", "black" ], points: [ { points: 85, bonus: 20 }, { points: 85, bonus: 10 } ] }, { _id: 2, name: "bob", age: 42, type: 1, status: "A", favorites: { artist: "Miro", food: "meringue" }, finished: [ 11, 25 ], badges: [ "green" ], points: [ { points: 85, bonus: 20 }, { points: 64, bonus: 12 } ] }, { _id: 3, name: "ahn", age: 22, type: 2, status: "A", favorites: { artist: "Cassatt", food: "cake" }, finished: [ 6 ], badges: [ "blue", "red" ], points: [ { points: 81, bonus: 8 }, { points: 55, bonus: 20 } ] }, { _id: 4, name: "xi", age: 34, type: 2, status: "D", favorites: { artist: "Chagall", food: "chocolate" }, finished: [ 5, 11 ], badges: [ "red", "black" ], points: [ { points: 53, bonus: 15 }, { points: 51, bonus: 15 } ] }, { _id: 5, name: "xyz", age: 23, type: 2, status: "D", favorites: { artist: "Noguchi", food: "nougat" }, finished: [ 14, 6 ], badges: [ "orange" ], points: [ { points: 71, bonus: 20 } ] }, { _id: 6, name: "abc", age: 43, type: 1, status: "A", favorites: { food: "pizza", artist: "Picasso" }, finished: [ 18, 12 ], badges: [ "black", "blue" ], points: [ { points: 78, bonus: 8 }, { points: 57, bonus: 7 } ] } ])
- 普通匹配,数组必须从内容及顺序完全相同才可以匹配
def find_array(): d = mongo_db['users'].find( filter={ "badges": [ "black", "blue" ] }, ) for a in d: print(a)
- 包含匹配
def find_array(): d = mongo_db['users'].find( filter={ "badges": "black" #获取 所有数组badges中包含了black的doc }, ) for a in d: print(a)
- 位置匹配
def find_array(): d = mongo_db['users'].find( filter={ "badges.0": "black" }, ) for a in d: print(a)
- 元素的单个子元素多重条件判断
def find_array(): d = mongo_db['users'].find( filter={ "finished": {"$elemMatch": {'$gt': 15, '$lt': 20}} # 任意元素匹配所有条件 }, #projection={ # 'finished': 1 #} ) for a in d: print(a)
def find_array(): d = mongo_db['users'].find( filter={ "finished": {'$gt': 15, '$lt': 20} # 任意元素匹配其中任意一个条件,不明白这样的道理,在非数组中两个条件是and }, projection={ 'finished': 1 } ) for a in d: print(a)
def find_array(): d = mongo_db['users'].find( filter={ "points.0.points": {'$gt': 50, '$lt': 80} #第一个元素同时满足两个条件 }, projection={ 'points': 1 } ) for a in d: print(a)
def find_array(): d = mongo_db['users'].find( filter={ "points.points": {'$gt': 50, '$lt': 80} # 任意元素同时满足此条件 }, projection={ 'points': 1 } ) for a in d: print(a)
- 元素的多个子元素多重条件判断
def find_array(): d = mongo_db['users'].find( filter={ "points": {'$elemMatch': {'points': {'$lte': 70}, 'bonus': 20}} # 任意元素的子元素同时满足条件 }, projection={ 'points': 1 } ) for a in d: print(a)
def find_array(): d = mongo_db['users'].find( filter={ "points.points": {'$lte': 70}, "points.bonus": 20 # 所有元素中有可以同时满足条件的子项 }, projection={ 'points': 1 } ) for a in d: print(a)
0 0
- mongo-pymongo 数组操作
- python mongo数据库出错解决及pymongo操作
- PyMongo python mongo curd
- mongo操作数组字段
- [Mongo]PyMongo安装和使用
- mongo和pymongo简单配置和使用
- Mongo C# 操作(元素 数组 )
- mongo对内嵌数组的操作
- pymongo的group操作
- pymongo常用操作
- pymongo的group操作
- pymongo 简单操作
- pymongo基本操作
- pymongo 操作集锦
- mongo操作
- Mongo操作
- mongo操作
- 利用pymongo操作mongoDB数据库
- 使用C#+Web+硬件实现远程控制的实现(物联网通信)
- <cite>和cite属性的区别
- universal-imageloader和glide清除磁盘缓存问题
- 确认序列号----阿里巴巴2015实习生笔试题
- <java.util>PriorityQueue代码分析
- mongo-pymongo 数组操作
- About The Problem "scrollToItemAtIndexPath:atScrollPosition:animated:" doesn't work
- iOS 通过(lame)将录制音频转换成Mp3
- ListView的背景、选中状态、下划线等相关说明
- CodeForces 342B--模拟+贪心
- 160708杂七杂八_static 关键字&memset&valgrind查看内存泄露
- Android 复习笔记5 listView ArrayList
- IIS7.0/IIS7.5 Microsoft.Web.Administration相关操作参数详解
- highcharts中如何正确显示时间格式的x轴