MongoDB基礎知識(二)

MongoDB基礎知識(二)

添加文檔

  1. BSON介紹:文檔的數據結構和JSON基本一樣。所有存儲在集合中的數據都是BSON格式。BSON 是一種類 json 的一種二進制形式的存儲格式,簡稱 Binary JSON。
  2. 添加文檔:MongoDB 使用 insert() 或 save() 方法向集合中插入文檔,語法如下:
    db.COLLECTION_NAME.insert(document)
    實例演示:
    以下文檔可以存儲在 MongoDB 的 mongodb1 數據庫 的 course 集合中:
>db.course.insert({title: 'MongoDB ', description: 'MongoDB 是一個 Nosql 數據庫',
by: 'abc',
url: 'http://*******',tags: ['mongodb', 'database', 'NoSQL'],
likes: 100})

以上實例中 course 是我們的集合名,如果該集合不在該數據庫中, MongoDB 會自動創建該集合並 插入文檔。
查看已插入文檔:

> db.course.find()
{ "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB", "desc ription" : "MongoDB 是一個 Nosql 數據庫", "by" : "abc", "url" : "http://*******", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
>
  1. 將數據單獨定義爲一個變量: 如下:
> document=({title: 'MongoDB', description: 'MongoDB 是一個 Nosql 數據庫', by: 'abc',
url: 'http://**********',
tags: ['mongodb', 'database', 'NoSQL'], likes: 100});

執行插入操作:

> db.course.insert(document)
WriteResult({ "nInserted" : 1 })

更新文檔

  1. 方法介紹:MongoDB 使用 update()方法來更新集合中的文檔。
  2. 語法規則:update() 方法用於更新已存在的文檔。語法格式如下:
db.collection.update(<query>,
<update>, {
upsert: <boolean>, multi: <boolean>,
writeConcern: <document> })
  1. 參數說明:
  2. 案例演示:
    我們在集合 course 中插入如下數據:
>db.course.insert({ title: 'MongoDB',
description: 'MongoDB 是一個 Nosql 數據庫', by: 'abc',
url: 'http://********',

tags: ['mongodb', 'database', 'NoSQL'], likes: 100})
接着我們通過 update() 方法來更新標題(title):

>db.couse.update({'title':'MongoDB 教程'},{$set:{'title':'NoSQL 教程'}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) # 輸出信息> db.col.find().pretty(){
"_id" : ObjectId("56064f89ade2f21f36b03136"),
"title" : "NoSQL","description" : "MongoDB 是一個 Nosql 數據庫",
"by" : "abc","url" : "http://*********",
"tags" : [
"mongodb",
"database","NoSQL"
],
"likes" : 100}
>

可以看到標題(title)由原來的 “MongoDB 教程” 更新爲了 “NoSQL 教程”。
5. 以上語句只會修改第一條發現的文檔,如果你要修改多條相同的文檔,則需要設置 multi 參數爲
true。

>db.couse.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{mul ti:true})

補充腳本:

//------------------更新(修改)文檔--------------------
//1、首先往Course集合中添加一個文檔數據
db.course.insert({
    title:"MongoDB教程",
    likes:100
})
//2、查詢course集合中所有的文檔數據
db.course.find()
//3、將文檔中title="MongoDB"的數據修改爲Mybatis教程
db.course.update({"title":"MongoDB教程"},{$set:{"title":"Mybatis"}
})
//4、以上的修改方法,只會修改找到的第一條記錄。現在我們需要修改所有滿足條件的記錄
db.course.update({"title":"MongoDB教程"},{$set:{"title":"Mybatis"}},{multi:true})

刪除文檔

  1. MongoDB刪除文檔:在前面的幾個章節中我們已經學習了MongoDB中如何爲集合添加數據和更 新數據。在本章節中我們將繼續學習 MongoDB 集合中文檔的刪除。
    a) MongoDBremove()函數是用來移除集合中的數據。
    b) MongoDB數據更新可以使用update()函數。
    c) 在執行remove()函數前先執行find()命令來判斷執行的條件是否正確,這是一個比較好的習慣。 2. 語法:remove() 方法的基本語法格式如下所示:
db.collection.remove(<query>,<justOne>)

如果你的 MongoDB 是 2.6 版本以後的,語法格式如下:

db.collection.remove(<query>,
{justOne: <boolean>,
writeConcern: <document> })
  1. 參數說明:
    a. query:(可選)刪除的文檔的條件。
    b. justOne : (可選)如果設爲 true 或 1,則只刪除一個文檔。 c. writeConcern :(可選)拋出異常的級別。
  2. 案例演示:
    a) 以下文檔我們執行兩次插入操作:
>db.course.insert({title: 'MongoDB ', description: 'MongoDB 是一個 Nosql 數據庫',
by: '張三丰',url: 'http://******',
tags: ['mongodb', 'database', 'NoSQL'], likes: 100})

b) 使用 find() 函數查詢數據:

> db.col.find()
{ "_id" : ObjectId("56066169ade2f21f36b03137"), "title" : "MongoDB 教程", "description" : "MongoDB 是一個 Nosql 數 據庫", "by" : "abc", "url" : "http://*********", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
{ "_id" : ObjectId("5606616dade2f21f36b03138"), "title" : "MongoDB", "description" : "MongoDB 是一個 Nosql 數
據庫", "by" : "abc", "url" : "http://******", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }

c) 接下來我們移除 title 爲 ‘MongoDB 教程’ 的文檔:

>db.col.remove({'title':'MongoDB 教程'}) WriteResult({ "nRemoved" : 2 }) # 刪除了兩條數據
>db.col.find()...... # 沒有數據
  1. 如果你只想刪除第一條找到的記錄可以設置 justOne 爲 1,如下所示: >db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
  2. 如果你想刪除所有數據,可以使用以下方式(類似常規 SQL 的 truncate 命令):
>db.col.remove({})
>db.col.find()

補充腳本:
//1、首先查看course集合中的所有數據
db.course.find()
//2、添加兩條title值一樣的數據
db.course.insert({“title”:“MongoDB”,likes:120})
//3、刪除title="MongoDB"的所有數據記錄
db.course.remove({“title”:“MongoDB”})
//4、值刪除滿足條件的第一條記錄
db.course.remove({“title”:“MongoDB”},{justOne:1})
//5、刪除course集合中的所有文檔(類似於清空表中的數據)
db.course.remove({})

條件查詢

b1. 方法介紹:MongoDB 查詢文檔使用 find() 方法,find() 方法以非結構化的方式來顯示所有文檔。 2. 語法:db.集合名.find(query, projection)
a) query :可選,使用查詢操作符指定查詢條件
b) projection :可選,使用投影操作符指定返回的鍵。查詢時返回文檔中所有鍵值, 只需省略該
參數即可(默認省略)。
3. MongoDB與關係型數據庫中where語句比較:
在這裏插入圖片描述
在這裏插入圖片描述
補充腳本:
//1、查詢某一個集合中的所有數據(類似於selct * from 表名)
db.course.find()
//2、查詢title=“Mybatis開發”
db.course.find({“title”:“Mybatis開發”}).pretty()
//3、查詢likes<120的所有數據記錄
db.course.find({“likes”:{KaTeX parse error: Expected 'EOF', got '}' at position 7: lt:120}̲}) //4、查詢likes<…lte:120}})
//5、查詢查詢likes>120的所有記錄
db.course.find({“likes”:{KaTeX parse error: Expected 'EOF', got '}' at position 7: gt:120}̲}) //6、查詢查詢like…gte:120}})
//7、查詢出likes!=120的所有記錄
db.course.find({“likes”:{$ne:120}})

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章