MongoDB 插入文件
MongoDB 插入文件
本章節中我們將向大家介紹如何將資料插入到 MongoDB 的集合中。
文件的資料結構和 JSON 基本一樣。
所有儲存在集合中的資料都是 BSON 格式。
BSON 是一種類似 JSON 的二進位制形式的儲存格式,是 Binary JSON 的簡稱。
插入文件
MongoDB 使用 insert() 或 save() 方法向集合中插入文件,語法如下:
db.COLLECTION_NAME.insert(document) 或 db.COLLECTION_NAME.save(document)
- save():如果 _id 主鍵存在則更新資料,如果不存在就插入資料。該方法新版本中已廢棄,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 來代替。
- insert(): 若插入的資料主鍵已經存在,則會拋 org.springframework.dao.DuplicateKeyException 異常,提示主鍵重複,不儲存當前資料。
3.2 版本之後新增了 db.collection.insertOne() 和 db.collection.insertMany()。
db.collection.insertOne() 用於向集合插入一個新文件,語法格式如下:
db.collection.insertOne( <document>, { writeConcern: <document> } )
db.collection.insertMany() 用於向集合插入一個多個文件,語法格式如下:
db.collection.insertMany( [ <document 1> , <document 2>, ... ], { writeConcern: <document>, ordered: <boolean> } )
引數說明:
- document:要寫入的文件。
- writeConcern:寫入策略,預設為 1,即要求確認寫操作,0 是不要求。
- ordered:指定是否按順序寫入,預設 true,按順序寫入。
例項
以下文件可以儲存在 MongoDB 的 itread01 資料庫 的 col 集合中:
>db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一個 Nosql 資料庫', by: '入門教學', url: 'http://www.itread01.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
以上例項中 col 是我們的集合名,如果該集合不在該資料庫中, MongoDB 會自動建立該集合並插入文件。
檢視已插入文件:
> db.col.find() { "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "入門教學", "url" : "http://www.itread01.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 } >
我們也可以將資料定義為一個變數,如下所示:
> document=({title: 'MongoDB 教程', description: 'MongoDB 是一個 Nosql 資料庫', by: '入門教學', url: 'http://www.itread01.com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 });
執行後顯示結果如下:
{ "title" : "MongoDB 教程", "description" : "MongoDB 是一個 Nosql 資料庫", "by" : "入門教學", "url" : "http://www.itread01.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
執行插入操作:
> db.col.insert(document) WriteResult({ "nInserted" : 1 }) >
插入文件你也可以使用 db.col.save(document) 命令。如果不指定 _id 欄位 save() 方法類似於 insert() 方法。如果指定 _id 欄位,則會更新該 _id 的資料。