介绍
MongoDB是一个快速、灵活的NoSQL数据库,在大数据量、高并发的场景下有着优异的表现。它不需要像关系型数据库一样必须有一个预定义的数据结构,可以通过文档对象模型(Document Object Model,简称DOM)自由地存储和查询数据。在本文中,我们将使用MongoDB创建一个新的数据库和集合,并向其中添加一些数据。
安装MongoDB
在安装MongoDB之前,需要确保计算机上安装了Node.js和NPM。在确认安装了Node.js和NPM之后,可以在终端中使用以下命令来安装MongoDB驱动程序:
npm install mongodb
接下来,可以创建一个新的文件夹,用于保存MongoDB数据库的文件。默认情况下,MongoDB的数据保存在/var/lib/mongodb目录下(在Linux系统中)或C:\data\db目录下(在Windows系统中)。可以在终端中使用以下命令创建新文件夹:
mkdir myDatabase
启动MongoDB
在安装MongoDB之后,可以使用以下命令在后台启动MongoDB:
mongod --dbpath /path/to/myDatabase --fork --logpath /path/to/log --port 27017
其中,--dbpath参数指定MongoDB数据库文件的路径,--fork参数告诉MongoDB将进程切换到后台执行,--logpath参数指定MongoDB的日志输出路径,--port参数指定MongoDB使用的端口号。如果操作顺利,应该看到类似以下输出:
[initandlisten] MongoDB starting : pid=4620 port=27017 dbpath=/var/lib/mongodb 64-bit host=ubuntu
[initandlisten] db version v3.4.1
[initandlisten] git version: 5e103c4f5583e2566a45d740225dc2506669034d
[initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
[initandlisten] allocator: tcmalloc
[initandlisten] modules: none
[initandlisten] build environment:
[initandlisten] distmod: ubuntu1604
[initandlisten] distarch: x86_64
[initandlisten] target_arch: x86_64
如果出现错误日志,请按照日志中的指示进行修复。
连接到数据库
启动MongoDB之后,可以使用以下命令连接到数据库并创建一个新的集合:
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'myproject';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
client.close();
});
该代码片段将尝试连接MongoDB服务器,如果连接成功,则输出“Connected successfully to server”。其中,const url指定服务器地址和端口号,const dbName指定要使用的数据库名称,在client.db函数中传递dbName参数以连接到数据库。可以根据需要修改这些值。
创建一个集合
要创建MongoDB中的集合,可以在连接到数据库后使用createCollection函数。以下示例演示如何创建一个名为“mycollection”的集合:
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'myproject';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
db.createCollection('mycollection', function(err, result) {
assert.equal(null, err);
console.log("Collection created!");
client.close();
});
});
该代码片段将尝试创建一个名为“mycollection”的集合,并在成功时输出“Collection created!”。可以根据需要修改集合名称。
将数据插入集合中
要向MongoDB数据库中的集合中插入数据,可以使用insertOne或insertMany函数。以下示例演示如何将一些数据插入“mycollection”中:
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'myproject';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
// Insert some documents
db.collection('mycollection').insertMany([
{a : 1}, {a : 2}, {a : 3}
], function(err, result) {
assert.equal(null, err);
console.log("Documents inserted!");
client.close();
});
});
该代码片段将尝试在“mycollection”中插入一些文档,并在成功时输出“Documents inserted!”。
查询集合中的数据
要从MongoDB数据库中的集合中获取数据,可以使用find函数。以下示例演示如何查询“mycollection”中的所有文档:
const MongoClient = require('mongodb').MongoClient;
const assert = require('assert');
// Connection URL
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'myproject';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
var cursor = db.collection('mycollection').find();
cursor.each(function(err, doc) {
assert.equal(err, null);
if (doc != null) {
console.dir(doc);
} else {
client.close();
}
});
});
该代码片段将尝试查询“mycollection”中的所有文档,并将每个文档的内容打印到控制台。
结论
本文介绍了如何安装MongoDB,创建一个数据库和集合,并向其中添加一些数据。通过本文中提供的示例代码,读者可以了解MongoDB的基本用法,进而探索更丰富和复杂的功能。