Maison  >  Article  >  développement back-end  >  Explication détaillée du résumé d'utilisation de PyMongo en python

Explication détaillée du résumé d'utilisation de PyMongo en python

黄舟
黄舟original
2017-05-28 10:57:542633parcourir

Cet article présente principalement le résumé de l'utilisation de PyMongo dans python, et présente l'utilisation du module PyMongo en détail. Il a une certaine valeur de référence. Ceux qui sont intéressés peuvent en savoir plus sur

.

Qu'est-ce que PyMongo

PyMongo est un programme pilote qui permet aux programmes Python d'utiliser la base de données Mongodb, écrite en python.

Installation

Environnement : Ubuntu 14.04+python2.7+MongoDB 2.4

Allez en premier Téléchargez le progiciel sur le site officiel, cliquez sur l'adresse pour ouvrir le lien. Après la décompression, entrez et utilisez python setup.py install pour installer

ou utilisez pip pour installer pip -m install pymongo

Utilisez essentiellement

pour créer une connexion

import pymongo 
client = pymongo.MongoClient('localhost', 27017)

ou vous pouvez le faire

import pymongo 
client = MongoClient('mongodb://localhost:27017/')

Se connecter à la base de données

db = client.mydb 
#或者
db = client['mydb']

Se connecter à l'agrégation

L'agrégation est équivalente à Base de données relationnelleTable dans

collection = db.my_collection 
#或者
collection = db['my_collection']

Afficher tous les noms d'agrégation sous la base de données

db.collection_names()

Insérer des enregistrements

collection.insert({"key1":"value1","key2","value2"})

Supprimer les enregistrements

Supprimer tout

collection.remove()

Supprimer par condition

collection.remove({"key1":"value1"})

Mettre à jourl'enregistrement

Copier le code Le code est le suivant :

collection.update({"key1": "value1"}, {"$set": {"key2": "value2", "key3": "value3"}})

Requête d'enregistrement

Requête d'un enregistrement : find_one() renvoie le premier enregistrement sans aucun paramètre. Avec des paramètres, la recherche renvoie selon les conditions

collection.find_one() 
collection.find_one({"key1":"value1"})

. Interrogez plusieurs enregistrements : find() renvoie tous les enregistrements sans paramètres, la recherche renvoie selon les conditions

collection.find() 
collection.find({"key1":"value1"})

pour afficher. les multiples enregistrements agrégés

for item in collection.find():   
  print item

Afficher le nombre total d'enregistrements agrégés

print collection.find().count()

Trier les résultats de la requête

Trier sur une seule colonne

collection.find().sort("key1") # 默认为升序 
collection.find().sort("key1", pymongo.ASCENDING) # 升序 
collection.find().sort("key1", pymongo.DESCENDING) # 降序

Trier sur plusieurs colonnes

Copier le codeLe code est le suivant :

collection.find().sort([("key1", pymongo.ASCENDING), ("key2", pymongo.DESCENDING)])

Exemple 1 :

#!/usr/bin/env python
#coding:utf-8
# Author:  --<qingfengkuyu>
# Purpose: MongoDB的使用
# Created: 2014/4/14
#32位的版本最多只能存储2.5GB的数据(NoSQLFan:最大文件尺寸为2G,生产环境推荐64位)
 
import pymongo
import datetime
import random
 
#创建连接
conn = pymongo.Connection(&#39;10.11.1.70&#39;,27017)
#连接数据库
db = conn.study
#db = conn[&#39;study&#39;]
 
#打印所有聚集名称,连接聚集
print u&#39;所有聚集:&#39;,db.collection_names()
posts = db.post
#posts = db[&#39;post&#39;]
print posts
 
#插入记录
new_post = {"AccountID":22,"UserName":"libing",&#39;date&#39;:datetime.datetime.now()}
new_posts = [{"AccountID":22,"UserName":"liuw",&#39;date&#39;:datetime.datetime.now()},
       {"AccountID":23,"UserName":"urling",&#39;date&#39;:datetime.datetime.now()}]#每条记录插入时间都不一样
 
posts.insert(new_post)
#posts.insert(new_posts)#批量插入多条数据
 
#删除记录
print u&#39;删除指定记录:\n&#39;,posts.find_one({"AccountID":22,"UserName":"libing"})
posts.remove({"AccountID":22,"UserName":"libing"})
 
#修改聚集内的记录
posts.update({"UserName":"urling"},{"$set":{&#39;AccountID&#39;:random.randint(20,50)}})
 
#查询记录,统计记录数量
print u&#39;记录总计为:&#39;,posts.count(),posts.find().count()
print u&#39;查询单条记录:\n&#39;,posts.find_one()
print posts.find_one({"UserName":"liuw"})
 
#查询所有记录
print u&#39;查询多条记录:&#39;
#for item in posts.find():#查询全部记录
#for item in posts.find({"UserName":"urling"}):#查询指定记录
#for item in posts.find().sort("UserName"):#查询结果根据UserName排序,默认为升序
#for item in posts.find().sort("UserName",pymongo.ASCENDING):#查询结果根据UserName排序,ASCENDING为升序,DESCENDING为降序
for item in posts.find().sort([("UserName",pymongo.ASCENDING),(&#39;date&#39;,pymongo.DESCENDING)]):#查询结果根据多列排序
  print item
 
#查看查询语句的性能
#posts.create_index([("UserName", pymongo.ASCENDING), ("date", pymongo.DESCENDING)])#加索引
print posts.find().sort([("UserName",pymongo.ASCENDING),(&#39;date&#39;,pymongo.DESCENDING)]).explain()["cursor"]#未加索引用BasicCursor查询记录
print posts.find().sort([("UserName",pymongo.ASCENDING),(&#39;date&#39;,pymongo.DESCENDING)]).explain()["nscanned"]#查询语句执行时查询的记录数

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn