python操作mongodb之基礎操作


#coding:utf-8
__author__ = 'hdfs'
import pymongo
from pymongo import MongoClient
client = MongoClient()

client=MongoClient('10.0.0.9',27017)
#連接mongodb數據庫
client = MongoClient('mongodb://10.0.0.9:27017/')
#指定數據庫名稱
db = client.test_database
#獲取非系統的集合
db.collection_names(include_system_collections=False)
#獲取集合名
posts = db.posts
#查找單個文檔
posts.find_one()
#給定條件的一個文檔
posts.find_one({"author": "Mike"})
#使用ID查找需要ObjectID
from bson.objectid import ObjectId
post_id='5728aaa96795e21b91c1aaf0'
document = client.db.collection.find_one({'_id': ObjectId(post_id)})
import datetime
new_posts = [{"author": "Mike",
             "text": "Another post!",
             "tags": ["bulk", "insert"],
             "date": datetime.datetime(2009, 11, 12, 11, 14)},
            {"author": "Eliot",
             "title": "MongoDB is fun",
             "text": "and pretty easy too!",
             "date": datetime.datetime(2009, 11, 10, 10, 45)}]
#插入多條記錄
result = posts.insert_many(new_posts)
#返回插入的ID
result.inserted_ids
#遞歸集合
for post in posts.find():
    post

#遞歸條件集合
for post in posts.find({"author": "Mike"}):
    post

#文檔的記錄數
posts.count()

#區間查詢
d = datetime.datetime(2009, 11, 12, 12)
for post in posts.find({"date": {"$lt": d}}).sort("author"):
    print post
#給集合profiles建立索引 唯一索引
result = db.profiles.create_index([('user_id', pymongo.ASCENDING)],unique=True)
#查看索引信息
list(db.profiles.index_information())
#
user_profiles = [
{'user_id': 211, 'name': 'Luke'},
{'user_id': 212, 'name': 'Ziltoid'}]
result = db.profiles.insert_many(user_profiles)

#聚合查詢
from pymongo import MongoClient
db = MongoClient('mongodb://10.0.0.9:27017/').aggregation_example
#准備數據
result = db.things.insert_many([{"x": 1, "tags": ["dog", "cat"]},
                              {"x": 2, "tags": ["cat"]},
                             {"x": 2, "tags": ["mouse", "cat", "dog"]},
                               {"x": 3, "tags": []}])
result.inserted_ids
'''
{ "_id" : ObjectId("576aaa973e5269020848cc7c"), "x" : 1, "tags" : [ "dog", "cat" ] }
{ "_id" : ObjectId("576aaa973e5269020848cc7d"), "x" : 2, "tags" : [ "cat" ] }
{ "_id" : ObjectId("576aaa973e5269020848cc7e"), "x" : 2, "tags" : [ "mouse", "cat", "dog" ] }
{ "_id" : ObjectId("576aaa973e5269020848cc7f"), "x" : 3, "tags" : [ ] }
'''
from bson.son import SON
#$unwind 解開-后面的變量
pipeline = [
     {"$unwind": "$tags"},
     {"$group": {"_id": "$tags", "count": {"$sum": 1}}},
     {"$sort": SON([("count", -1), ("_id", -1)])}
 ]
list(db.things.aggregate(pipeline))
#使用聚合函數with command
db.command('aggregate', 'things', pipeline=pipeline, explain=True)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM