在本Node.js教程中,我們將分別使用insertOne()和insertMany()方法,通過示例,學(xué)習(xí)從Node.js應(yīng)用程序向MongoDB Collection插入一個或多個文檔。
以下是逐步指南,并提供了一個示例,該示例將文檔從Node.js應(yīng)用程序插入到MongoDB Collection中。
啟動MongoDB服務(wù)。運行以下命令以啟動MongoDB服務(wù)
sudo service mongod start
獲取MongoDB服務(wù)的基本URL。要了解MongoDB服務(wù)的基本URL,一個簡單的技巧就是打開終端并運行Mongo Shell。
Terminal - Mongo Shell
arjun@nodejs:~$ mongo MongoDB shell version v3.4.9 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.9 Server has startup warnings: 2017-10-29T18:15:36.110+0530 I STORAGE [initandlisten]
當(dāng)Mongo Shell啟動時,它回顯MongoDB的基本URL。
mongodb://127.0.0.1:27017
準(zhǔn)備完整的URL。將您要連接的數(shù)據(jù)庫名稱(例如newdb)附加到基本URL。
mongodb://127.0.0.1:27017/newdb
創(chuàng)建一個MongoClient。
var MongoClient = require('mongodb').MongoClient;
在URL的幫助下從MongoClient連接到MongoDB服務(wù)器。
MongoClient.connect(url, <callback_function>);
一旦完成MongoClient的嘗試建立連接,回調(diào)函數(shù)就會 收到錯誤和db對象作為參數(shù)。
如果連接成功,則db對象指向數(shù)據(jù)庫 newdb。
將文檔插入指定的MongoDB集合。以下是用于從Node.js將文檔插入到MongoDB中的集合的insertOne()和insertMay()方法的語法。
insertOne()
db.collection(<collection_name>).insertOne(<document>, <callback_function>)
insertMany()
db.collection(<collection_name>).insertMany(<documents_array>, <callback_function>)
參數(shù)說明:
<collection_name> - 我們要創(chuàng)建的新MongoDB集合的名稱
<document> - 必須插入到MongoDB Collection中的單個文檔
<document_array> - 要插入到MongoDB Collection中的文檔數(shù)組
<callback_function> - 在Node嘗試創(chuàng)建集合并準(zhǔn)備好結(jié)果之后,將調(diào)用此Node.js回調(diào)函數(shù)?;卣{(diào)函數(shù)接收錯誤和結(jié)果對象作為參數(shù)。
// 我們在newdb數(shù)據(jù)庫中創(chuàng)建“用戶”集合 var url = "mongodb://localhost:27017/newdb"; // 創(chuàng)建一個客戶端到mongodb var MongoClient = require('mongodb').MongoClient; // 使客戶端連接到mongo服務(wù) MongoClient.connect(url, function(err, db) { if (err) throw err; // db指向newdb console.log("Switched to "+db.databaseName+" database"); // 要插入的文件 var doc = { name: "Roshan", age: "22" }; // 使用insertOne將文檔插入“用戶”集合 db.collection("users").insertOne(doc, function(err, res) { if (err) throw err; console.log("Document inserted"); // 完成后關(guān)閉與db的連接 db.close(); }); });
輸出結(jié)果
$ node node-js-mongodb-insert-document.js Switched to newdb database Document inserted
Mongo Shell
> use newdb switched to db newdb > show collections users > db.users.find({}); { "_id" : ObjectId("5a127729a415612642e3d6ad"), "name" : "Roshan", "age" : "22" } >
// 我們在newdb數(shù)據(jù)庫中創(chuàng)建“用戶”集合 var url = "mongodb://localhost:27017/newdb"; // 創(chuàng)建一個客戶端到mongodb var MongoClient = require('mongodb').MongoClient; // 使客戶端連接到mongo服務(wù) MongoClient.connect(url, function(err, db) { if (err) throw err; // db指向newdb console.log("Switched to "+db.databaseName+" database"); // 要插入的文件 var docs = [{ name: "Udat", age: "21" }, { name: "Karthik", age: "24" }, { name: "Anil", age: "23" }]; // 使用insertOne將多個文檔插入“用戶”集合 db.collection("users").insertMany(docs, function(err, res) { if (err) throw err; console.log(res.insertedCount+" documents inserted"); // 完成后關(guān)閉與db的連接 db.close(); }); });
輸出結(jié)果
$ node node-js-mongodb-insert-many-documents.js Switched to newdb database 3 documents inserted
Mongo Shell
> db.users.find({}); { "_id" : ObjectId("5a127729a415612642e3d6ad"), "name" : "Roshan", "age" : "22" } { "_id" : ObjectId("5a1278efecc5062794f4ed8d"), "name" : "Udat", "age" : "21" } { "_id" : ObjectId("5a1278efecc5062794f4ed8e"), "name" : "Karthik", "age" : "24" } { "_id" : ObjectId("5a1278efecc5062794f4ed8f"), "name" : "Anil", "age" : "23" } >
第一個條目來自第一個示例,其余三個已與此示例一起插入。
在此Node.js MongoDB教程: Node.js –插入Document(s)到MongoDB Collection中,我們學(xué)習(xí)了使用mongodb包從Node.js應(yīng)用程序中使用insertOne()和insertMany()方法將一個或多個文檔插入到MongoDB Collection中。在我們的下一個教程– Node.js MongoDB Find中,我們將學(xué)習(xí)從MongoDB Collection查詢文檔。