python操作mongodb之基础操作

xiaoxiao2021-02-28  74

#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 )
转载请注明原文地址: https://www.6miu.com/read-28029.html

最新回复(0)