irpas技术客

python MongoDB数据库操作与连接和ORM_Cachel wood_mongo orm python

未知 3560

文章目录 数据库连接与操作pymongo使用 ORM简介

数据库连接与操作

关系数据库:PostgreSQL、MySQL 非关系数据库:MongoDB

pymongo使用 创建连接 from pymongo import MongoClient client = MongoClient() client = MongoClient('localhost:27017/') 指定数据库 db = client.test_database db = client['test-database'] 指定集合(collection) collection = db.test_collection collection = db['test-collection']

查找所有数据库的名字

import pymongo myclient = pymongo.MongoClient("mongodb://localhost:27017/") dblist = myclient.list_database_names() for db in dblist: print(db) mydb = myclient["student"] mycol = mydb["comments"] myclient.close() admin config local student 插入文档 insert_one() 批量插入 insert_many() from pymongo import MongoClient import os import sys texts=[] with open('w15\mongo_texts.txt',encoding='utf-8') as f: for line in f: items=line.strip().split('\t') texts.append({"text":items[0],"score":int(items[1])}) print('load %d lines' % len(texts)) client=MongoClient('localhost',27017) db=client.student collection=db.comments result=collection.insert_many(texts) print(result) client.close() load 20000 lines <pymongo.results.InsertManyResult object at 0x000001CF7FB8FF08>

returns a single document matching a query (or None if there are no matches)

find_one([query])返回结果为字典

To get more than a single document as the result of a query

find([query])returns a Cursor instance that can be iteratedfind() .limit(size) #控制返回的数目 import sys from pymongo import MongoClient #0 差评;1 好评; with MongoClient('localhost',27017) as client: db=client.student collection=db.comments re=collection.find_one() re=collection.find_one({"score":1}) if 'text' in re: print(re['text']) res=collection.find({"score":0}).limit(5) #int(sys.argv[1])}).limit(5) for index, doc in enumerate(res,start=1): if 'text' in doc and 'score' in doc: print(index,doc['score'],doc['text']) 开机有点烦锁,联网时有些软件会自动下载安装!! 1 0 用着用着就卡死了 卖家只会说是正常的 太坑了 2 0 垃圾电脑,慢死,刚买的就卡。跟三年前老电脑一个德行, 3 0 服务太垃圾了,客服不理人,根本就没有保障,电脑卡的要死,多开几个网面就死机不动。我怀疑是不是翻新机。这样的店铺怎么不早点 关闭。妈的 4 0 破电脑 我已经去修了两次了 今天是第三次 我想知道 动不动黑屏 开不了机是什么鬼!!!我已经无力吐槽了非常的火大 我想知道上 个 qq 看个电视都卡的卡的电脑 是怎么做打游戏不卡的? 5 0 体验感不好,一是没有发票提供,二是装不了一些系统,如GIS,这都没法工作的,郁闷不是一点点 计数 返回满足要求的文档数 count_documents({}) from pymongo import MongoClient with MongoClient('localhost',27017) as client: db=client.student collection=db.comments c=collection.count_documents({"text":{"$regex":"机箱"}}) print(c) docs=collection.find({"text":{"$regex":"机箱"}}) for doc in docs: print(doc['text']) 1 买之前纠结了很久,本来想买个迷你的台式机箱自己组装个电脑,但是看到台式机箱后面那一坨线心理真是不舒服,还是笔记本好,干干净净 ,携带方便,用于工作和娱乐都没有问题,外出不好携带的!电脑外观很漂亮,重量也很轻,关键是自带512G的固态硬盘,速度杠杠的,亲们 !别犹豫了买吧! 排序 对查询结果进行排序sort(“name”,1) #ascendingsort(“name”,-1) #descending from pymongo import MongoClient with MongoClient('localhost',27017) as client: db=client.student collection=db.comments docs=collection.find({"text":{"$regex":"开机"}}).sort("score",1) for doc in docs: print(doc['text'], doc['score']) 删除文档 delete_one(myquery) delete_many(myquery) delete_many({}) #删除collection中的所有文档 drop() #删除整个collection 更新:比较复杂 myquery = { "address": "Valley 345" } newvalues = { "$set": { "address": "Canyon 123" } } update_one(myquery, newvalues) ? myquery = { "address": { "$regex": "^S"}} newvalues = { "$set": { "name": "Minnie" }} x = mycol.update_many(myquery, newvalues) ORM简介

面向关系数据库的ORM sqlalchemy / peewee / PonyORM / Django ORM

一般的逻辑 创建mapping,业务逻辑中的实体类与数据库的表建立对应关系 构建数据类和会话后进行存储或查询

面向非关系数据库的ORM Django ORM / MongoEngine / MongoKit / Ming


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #mongo #orm #Python #pymongo #import