在本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查詢文檔。