MongoDB增刪查改

2021-06-29 02:27:06 字數 3869 閱讀 2574

mongodb沒有建立資料庫的命令,但是你可以先執行use db_name來進行一些操作,如db.createcollection('db_table'),這樣就可以建立乙個db_name的資料庫了。

以下語句其實都不用加引號

insert方法

insert(obj)

> db.test.insert()

writeresult()

批量插入
> db.test.insert([,,])

writeresult()

插入效驗

檔案必須小於16m,如果沒有』_id』字段,就自動新增乙個。

remove(query)

db.test.remove()

刪除文件

db.test.remove({})

刪除速度

刪除文件通常很快,但是如果要清空整個集合,那麼使用drop直接刪除集合會更快(然後在這個空集合上重建各項索引)。

update(query, object[, upsert_bool, multi_bool])

兩個必選的引數:

1. 查詢文件,用於定位需要更新的目標文件

2. 修改器文件,用於說明要對找到的文件進行哪些修改

更新操作是不可分割的:若是兩個更新同時發生,先到達伺服器的先執行,接著執行另外乙個。

簡單的更改:

db.test.update(, })

其中後者便是所謂的修改器文件

還有一種方式,取出文件再進行修改:

> var lau = db.test.findone()

> lau

> lau.name

lau> lau.name = 'bing'

bing

> lau.relationships = ;

> db.test.update(, lau);

writeresult()

> db.test.findone()

}

修改器

有這麼幾種:

1.'$set'用來指定乙個字段,如果不存在則建立它

db.test.update(, })

2.'$unset'刪除

db.test.update(, })

3.$inc修改器用來增加(或負數減少)已有鍵的值,或者該鍵不存在那就建立乙個。

db.test.update(, })

4.$push向已有的陣列末尾加入乙個元素,要是沒有就建立乙個新的陣列

db.test.update(, })

使用$each子操作符,可以通過依次$push操作新增多個值

db.test.update(, }})

如果希望陣列的最大長度是固定的,那麼可以將$slice$push組合在一起使用。這樣就可以保證陣列不會超過設定號的最大長度,這實際上就得到了乙個最多包含n個元素的陣列:

db.test.update(, }})

實際就是擷取最後3個

最後可以在清理元素之前使用$sort,只要向陣列中新增子物件就需要清理:沒怎麼看懂這個- -

5. 使用$ne$addtoset實現陣列內元素不會重複

6. 若將陣列看為佇列或者棧可以使用$pop可以從陣列任意一端刪除元素,}從陣列末尾刪除乙個元素,-1自然是開頭

7. 有時需要基於特定條件來刪除元素,而不僅僅是根據元素位置,這時可以使用$pull

db.test.update({}, })

8. 兩個運算元組中的值的方法:通過位置或者定位操作符('$')

9. 設定update中的upsert可以使得沒有找到符合更新條件的文件會以這個條件和更新建立乙個新的文件。

10. 最後乙個引數是是否更新多個匹配的文件

db.test.find([query],[fields])匹配{}查詢全部,query可加入限定條件,fields是指定想要的鍵,使用1表示確認,使用0表示剔除。

查詢使用上有些限制,傳遞給資料庫的查詢文件的值必須是常量。

query可以加入查詢條件(普通的指定值相當與相等),常用的查詢條件有:

比較操作符:$lt,$lte,$gt,$gteor查詢:$in(find(})),$nin$or(find(, ]))

$not$and,也可以是{}包裹的

對於檢查null不僅要匹配null還要使用$existsfind(:true})

正規表示式

查詢陣列:

$all都存在才匹配

$size查詢特定長度的陣列

$slice可以返回某個鍵匹配的陣列元素的子集(find(criteria, }))查詢內嵌文件:查詢整個文件,或者只針對其鍵/值對進行查詢。

$where,它幾乎可以在查詢中做任何使其,為了安全起見,應該嚴格限制或者消除$where語句的使用。

db

.mycollection

.find( );

db.mycollection

.find( );

db.mycollection

.find( } );

db.mycollection

.find(

} );

游標

資料庫使用游標返回find的執行結果。

典型的結果遍歷如下所示:

while(cursor.hasnext())
還可以這樣來:

cursor.foreach(function

(x));

常用查詢選項:

1. 限制返回結果的數量:$limit

2. 忽略一定數量的結果:$skip

3. 排序:$sort(接收乙個物件作為引數,這個物件是一組鍵/值對,鍵對應文件的鍵名,值代表排序的方向。排序方向可以是1(公升序),-1(降序。如果指定了多個鍵,則按照這些鍵被指定的順序逐個排序))。

MongoDB 增刪查改(一)

course.find then result console.log result course.findone then result console.log result 查詢使用者集合中年齡字段大於 20 並且小於 50 的文件 gt 大於 lt 小於 course.find then re...

Mongodb簡單的增刪查改

插入資料 新增乙個學生,往student表新增乙個記錄 系統發現 student 是乙個陌生的集合名字,所以就自動建立了集合 db.student.insert 檢視當前庫所有的表 顯示當前的資料集合 mysql 中叫表 show collections刪除資料庫 刪除資料庫,刪除當前所在的資料庫 ...

C 連線MongoDB的增刪查改

1 前置條件需要安裝好mongodb的驅動 mongocxx mongo跑起來。includepath usr local include mongocxx v noabi includepath usr local include bsoncxx v noabi libs l usr local ...