mongoDB

  • mongodb中基本的概念是 文檔(字段)、集合(表)、數(shù)據(jù)庫(kù)

1.查看當(dāng)前數(shù)據(jù)庫(kù)

db (默認(rèn)為test)

2.查看所有數(shù)據(jù)庫(kù)

show dbs或者show databases

3.切換數(shù)據(jù)庫(kù)

use (如果數(shù)據(jù)庫(kù)不存在,則創(chuàng)建,否則切換到指定數(shù)據(jù)庫(kù))

4.刪除當(dāng)前數(shù)據(jù)庫(kù)(注意:先切換到要?jiǎng)h除的數(shù)據(jù)庫(kù))

db.dropDatabase()  

5.創(chuàng)建集合

db.createCollection(name,options) 

6.查看集合

show collections

7.刪除集合

db.集合名稱.drop()

8.保存

db.集合名稱.save(document)

9.更新

db.test2.update({name:'100cxy'},{name:'cxy100'})

10.數(shù)據(jù)查詢

db.wzry.find({age:5})
db.wzry.findOne({age:5}) 查詢,只返回第?個(gè)
db.wzry.find({age:5}).pretty() 將結(jié)果格式化

一、比較、范圍運(yùn)算符

  • 等于
    默認(rèn)是等于判斷,沒(méi)有運(yùn)算符
  • 小于
    db.wzry.find({ age : { $lt : 5} } )
  • 小于等于
    db.wzry.find({ age : { $lte : 5} } )
  • 大于
    db.wzry.find( { age : { $gt : 2 } })
  • 大于等于
    $gte (greater than equal)
  • 不等于
    $ne (not equal)
  • 在范圍內(nèi)
    db.wzry.find( {age : { $in : [4,6] } } )
  • 不在范圍內(nèi)
    db.wzry.find( { age : { $nin : [4,6] } } )

二、邏輯運(yùn)算符

  • 邏輯與 (and)
    db.wzry.find({age:5,type:'刺客'})
  • 邏輯或 (or)
    db.wzry.find({$or:[{age:5},{type:'刺客'}]})

三、支持正則表達(dá)式

  • 以'后'字開(kāi)頭
    -- 第一種
    db.wzry.find({name:/^后/})
    -- 第二種
    db.wzry.find({name:{$regex:'^后'}})

四、limit和skip

  • limit()用于讀取指定數(shù)量的文檔
    db.wzry.find().limit(2)
  • limit()用于讀取指定數(shù)量的文檔
    db.wzry.find().limit(2)

五、排序

  • ?法sort(), ?于對(duì)結(jié)果集進(jìn)?排序
  • db.集合名稱.find().sort({字段:1,...})
  • 參數(shù)1為升序排列
  • 參數(shù)-1為降序排列
 db.wzry.find().sort({age:1})


六、統(tǒng)計(jì)個(gè)數(shù)

  • 方法:count() ?于統(tǒng)計(jì)結(jié)果集中?檔條數(shù)
    • db.集合名稱.find({條件}).count()
    • db.集合名稱.count({條件})
db.wzry.find({age:{$gte:5}}).count()
db.wzry.count({age:{$gte:5}})


七、消除重復(fù)

  • 方法:distinct() 對(duì)數(shù)據(jù)進(jìn)行去重
  • db.集合名稱.distinct('去重字段',{條件})
db.wzry.distinct('type')

八、mongdb聚合

常用表達(dá)式:

$sum 計(jì)算總和, $sum:1 表示以?倍計(jì)數(shù)
$avg 計(jì)算平均值
$min 獲取最?值
$max 獲取最?值
$push在結(jié)果?檔中插?值到?個(gè)數(shù)組中
$first根據(jù)資源?檔的排序獲取第?個(gè)?檔數(shù)據(jù)
$last根據(jù)資源?檔的排序獲取最后?個(gè)?檔數(shù)據(jù)

常用操作:

$group將集合中的?檔分組, 可?于統(tǒng)計(jì)結(jié)果
$match過(guò)濾數(shù)據(jù), 只輸出符合條件的?檔
$project修改輸??檔的結(jié)構(gòu), 如重命名、 增加、 刪除字段、 創(chuàng)建計(jì)算結(jié)果
$sort將輸??檔排序后輸出

$limit限制聚合管道返回的?檔數(shù)
$skip跳過(guò)指定數(shù)量的?檔, 并返回余下的?檔
$unwind 將數(shù)組類型的字段進(jìn)?拆分


九、mongo和python交互

1、導(dǎo)入模塊

import pymongo

2、建立與MongoClient的連接

client = MongoClient('localhost',27017)

3、得到數(shù)據(jù)庫(kù)

db = client.數(shù)據(jù)庫(kù)名

4、得到一個(gè)集合

collection = db.集合名稱

from pymongo import *

"""
插入方法:
insert_one() 傳入一個(gè)字典,表示插入一個(gè)文檔
insert_many() 傳入一個(gè)列表,列表的元素為字典,插入多條文檔
"""


def insert():
try:
# 1. 創(chuàng)建連接對(duì)象
client = MongoClient(host='localhost', port=27017)
# 2. 獲取數(shù)據(jù)庫(kù)
# 如果這個(gè)數(shù)據(jù)庫(kù)不存在,就會(huì)在內(nèi)存中虛擬創(chuàng)建
# 當(dāng)在庫(kù)里面創(chuàng)建集合的時(shí)候,就會(huì)在物理真實(shí)創(chuàng)建這個(gè)數(shù)據(jù)庫(kù)
db = client.demo # 使用demo數(shù)據(jù)庫(kù)
# 向stu集合插入數(shù)據(jù)
# 插入一條
db.stu.insert_one({'name': 'zs', 'age': 'lisi'})
# 插入多條
db.stu.insert_many([{'name': 1}, {'name': 2}])
except Exception as e:
print(e)


if __name__ == '__main__':
insert()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、MongoDB介紹 1、NoSQL:非關(guān)系型數(shù)據(jù)庫(kù) 在php的世界里,常見(jiàn)的非關(guān)系型數(shù)據(jù)庫(kù)有memcached...
    寵辱不驚丶?xì)q月靜好閱讀 690評(píng)論 0 3
  • db的幫助文檔 輸入:db.help(); db.AddUser(username,password[, read...
    一稈子數(shù)碼閱讀 1,930評(píng)論 0 0
  • 簡(jiǎn)介 MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的NoSQL數(shù)據(jù)庫(kù) 由C++語(yǔ)言編寫(xiě),運(yùn)行穩(wěn)定,性能高 旨在為 WE...
    大熊_7d48閱讀 37,869評(píng)論 1 9
  • 一、MongoDB簡(jiǎn)介 1.概述 ? MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),由C++語(yǔ)言編寫(xiě)。旨在為WE...
    鄭元吉閱讀 1,123評(píng)論 0 2
  • MongoDB使用總結(jié) 數(shù)據(jù)庫(kù)操作 show dbs : 顯示所有的數(shù)據(jù)庫(kù) use user : 選擇數(shù)據(jù)庫(kù)u...
    愛(ài)撒謊的男孩閱讀 1,186評(píng)論 0 3

友情鏈接更多精彩內(nèi)容