一步步教你如何在MongoDB中建立自己的数据库

介绍

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的基本用法,进而探索更丰富和复杂的功能。

数据库标签