python學習之資料庫:mongoDB

來源:互聯網
上載者:User

標籤:go import   sort 排序   check   刪除表   ref   and   obj   form   sam   

參考網址:

1、http://www.runoob.com/mongodb/mongodb-intro.html

2、http://www.runoob.com/python/python-mysql.html

3、http://www.cnblogs.com/descusr/archive/2011/11/15/2249391.html

 

from pymongo import * # 導包con = Connection(...) # 連結db = con.database # 連結資料庫db.authenticate(‘username‘, ‘password‘) # 登入db.drop_collection(‘users‘) #刪除表db.logout() # 退出db.collection_names() # 查看所有表db.users.count() # 查詢數量db.users.find_one({‘name‘ : ‘xiaoming‘}) # 單個對象db.users.find({‘age‘ : 18}) # 所有對象db.users.find({‘id‘:64}, {‘age‘:1,‘_id‘:0}) # 返回一些欄位 預設_id總是返回的 0不返回 1返回db.users.find({}).sort({‘age‘: 1}) # 排序db.users.find({}).skip(2).limit(5) # 切片

db.users.find({}, {}, 10, 20) # 第二種寫法 切片 未測試

 

collection 

 屬性:full_name,name,databaseinsert(self, doc_or_docs, manipulate=True, safe=False, check_keys=True, **kwargs):
  • 當manipulate=True 時,_id 會被自動添加到 dict,並返回些 _id(or list(_id)),
    為False 時,返回 None
  • 當 safe 為 True 時,會自動判斷to_save 是否為 dict,如果檢查出錯,會提示出錯資訊,會等待資料庫的響應,而不會執行插入資料庫
  • doc_or_docs 允許插入一條或多條記錄
save(self, to_save, manipulate=True, safe=False, **kwargs)
  • to_save,只接受一個 dict (字典)
  • 當 to_save 裡包含 _id 時,為update (可能update 多條)
drop(self) 
  • 刪除些 collection (集合及資料一起刪除)
remove(self, spec_or_id=None, safe=False, **kwargs)
  • romve 一條記錄
  • 刪除操作不可還原
  • 當 safe 為 True 時,會自動判斷參數的正確性,如果有異常,會等待資料庫的響應,而不會執行刪除操作 
  • spec_or_id ,為一完整doc 或指定了 _id 的字典
find_one(self, spec_or_id=None, *args, **kwargs)
  • spec_or_id ,為一完整doc 或指定了 _id 的字典
  • 返回一條合格記錄
 find(self, *args, **kwargs)
  • 參數必需是一個 doc 原型(eg:{“name”:"abc"})
  • 返回 Cursor ,並非(result collection)
  • spec 查詢條件
  • fields 返回的欄位清單,但_id 為預設返回
  • skip 省略的記錄數
  • limit 一次返回的最大記錄數
  • timeout 如果為True ,逾時會自動斷開
  • snapshot 快照模式,True 時保證返回結果不重複
  • tailable 保持tailable 遊標的開啟,並記錄上次的最後位
  • sort 排序欄位
  • max_scan 允許查詢的最大數量 ( version **>= 1.5.1**)
  • as_class 指定查詢結果的類型,預設為 ~pymongo.connection.Connection.document_class
  • network_timeout 指定逾時時間
count(self) 返回總記錄數create_index(self, key_or_list, deprecated_unique=None, ttl=300, **kwargs)
  • 為一個或多個key建立索引
  • key 必須為字串類型
  • eg: create_index("mike")
  • eg: create_index([("mike", pymongo.DESCENDING), ("eliot", pymongo.ASCENDING)])
ensure_index(self, key_or_list, deprecated_unique=None, ttl=300, **kwargs)
  • 檢查是否存在些索引,如果不存在則建立,存在則返回None
drop_indexes(self) 刪除所以索引drop_index(self, index_or_name) 刪除指定索引index_information(self) 返回索引資訊rename(self, new_name, **kwargs) 重新指向一個collectiondistinct(self, key) 返回所有key 不重複的記錄 

01      mongo –path

02      db.AddUser(username,password) 添加使用者

03      db.auth(usrename,password) 設定資料庫連接驗證

04      db.cloneDataBase(fromhost) 從目標伺服器複製一個資料庫

05      db.commandHelp(name) returns the help for the command

06      db.copyDatabase(fromdb,todb,fromhost) 複製資料庫fromdb—來源資料庫名稱,todb—目標資料庫名稱,fromhost—來源資料庫伺服器位址

07      db.createCollection(name,{size:3333,capped:333,max:88888}) 建立一個資料集,相當於一個表

08      db.currentOp() 取消當前庫的當前操作

09      db.dropDataBase() 刪除當前資料庫

10      db.eval(func,args) run code server-side

11      db.getCollection(cname) 取得一個資料集合,同用法:db[‘cname‘] or db.cname

12      db.getCollenctionNames() 取得所有資料集合的名稱列表

13      db.getLastError() 返回最後一個錯誤的提示訊息

14      db.getLastErrorObj() 返回最後一個錯誤的對象

15      db.getMongo() 取得當前伺服器的連線物件get the server connection object

16      db.getMondo().setSlaveOk() allow this connection to read from then nonmaster membr of a replica pair

17      db.getName() 返回當操作資料庫的名稱

18      db.getPrevError() 返回上一個錯誤對象

19      db.getProfilingLevel() ?什麼等級

20      db.getReplicationInfo() ?什麼資訊

21      db.getSisterDB(name) get the db at the same server as this onew

22      db.killOp() 停止(殺死)在當前庫的當前操作

23      db.printCollectionStats() 返回當前庫的資料集狀態

24      db.printReplicationInfo()

25      db.printSlaveReplicationInfo()

26      db.printShardingStatus() 返回當前資料庫是否為共用資料庫

27      db.removeUser(username) 刪除使用者

28      db.repairDatabase() 修複當前資料庫

29      db.resetError()

30      db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into {cmdObj:1}

31      db.setProfilingLevel(level) 0=off,1=slow,2=all

32      db.shutdownServer() 關閉當前服務程式

33      db.version() 返回當前程式的版本資訊

34       

35      db.linlin.find({id:10}) 返回linlin資料集ID=10的資料集

36      db.linlin.find({id:10}).count() 返回linlin資料集ID=10的資料總數

37      db.linlin.find({id:10}).limit(2)返回linlin資料集ID=10的資料集從第二條開始的資料集

38      db.linlin.find({id:10}).skip(8) 返回linlin資料集ID=10的資料集從0到第八條的資料集

39      db.linlin.find({id:10}).limit(2).skip(8) 返回linlin資料集ID=1=的資料集從第二條到第八條的資料

40      db.linlin.find({id:10}).sort() 返回linlin資料集ID=10的排序資料集

41      db.linlin.findOne([query]) 返回合格一條資料

42      db.linlin.getDB() 返回此資料集所屬的資料庫名稱

43      db.linlin.getIndexes() 返回些資料集的索引資訊

44      db.linlin.group({key:…,initial:…,reduce:…[,cond:...]})

45      db.linlin.mapReduce(mayFunction,reduceFunction,

46      )

47      db.linlin.remove(query) 在資料集中刪除一條資料

48      db.linlin.renameCollection(newName) 重新命名些資料集名稱

49      db.linlin.save(obj) 往資料集中插入一條資料

50      db.linlin.stats() 返回此資料集的狀態

51      db.linlin.storageSize() 返回此資料集的儲存大小

52      db.linlin.totalIndexSize() 返回此資料集的索引檔案大小

53      db.linlin.totalSize() 返回些資料集的總大小

54      db.linlin.update(query,object[,upsert_bool])在此資料集中更新一條資料

55      db.linlin.validate() 驗證此資料集

56      db.linlin.getShardVersion() 返回資料集共用版本號碼

57      db.linlin.find({‘name’:‘foobar’}) select * from linlin where name=’foobar’

58      db.linlin.find() select * from linlin

59      db.linlin.find({‘ID’:10}).count() select count(*) from linlin where ID=10

60      db.linlin.find().skip(10).limit(20) 從查詢結果的第十條開始讀20條資料 select * from linlin limit 10,20 ———-mysql

61      db.linlin.find({‘ID’:{$in:[25,35,45]}}) select * from linlin where ID in (25,35,45)

62      db.linlin.find().sort({‘ID’:-1}) select * from linlin order by ID desc

63      db.linlin.distinct(‘name’,{‘ID’:{$lt:20}}) select distinct(name) from linlin where ID<20

64      db.linlin.group({key:{‘name‘:true},cond:{‘name‘:‘foo‘},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}})

65      select name,sum(marks) from linlin group by name

66      db.linlin.find(‘this.ID<20′,{name:1}) select name from linlin where ID<20

67      db.linlin.insert({‘name‘:‘foobar’,‘age‘:25}) insert into linlin (‘name‘,‘age’)values(‘foobar‘,25)

68      db.linlin.insert({‘name‘:‘foobar’,‘age‘:25,’email’:‘[email protected]’})

69      db.linlin.remove({}) delete * from linlin

70      db.linlin.remove({‘age‘:20}) delete linlin where age=20

71      db.linlin.remove({‘age‘:{$lt:20}}) delete linlin where age<20

72      db.linlin.remove({‘age‘:{$lte:20}}) delete linlin where age<=20

73      db.linlin.remove({‘age‘:{$gt:20}}) delete linlin where age>20

74      db.linlin.remove({‘age’:{$gte:20}}) delete linlin where age>=20

75      db.linlin.remove({‘age’:{$ne:20}}) delete linlin where age!=20

76      db.linlin.update({‘name’:‘foobar’},{‘$set’:{‘age’:36}}) update linlin set age=36 where name=’foobar’

77      db.linlin.update({‘name’:‘foobar’},{‘$inc’:{‘age’:3}}) update linlin set age=age+3 where name=’foobar’

python學習之資料庫:mongoDB

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.