步骤2 - 使用 Node.js 访问 MongoDB
在 localhost:27017 的服务器上,在数据库 admin 下面创建了一个名为 person 的数据库表,并插入了两条记录:
上图是用 MongoDB Compass 查看的成功插入的两条记录。
下面我们用 Node.js 读取这两条记录。
首先在命令行里执行 npm install mongodb
,
然后新建一个 JavaScript 文件,复制以下内容:
注意第 12 行的 dbo.collection("person"). find({}).toArray
,意思是读取表 person 里的所有记录。
var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017"; MongoClient.connect(url, function(err, db) { if (err){ console.log(err); throw err; } console.log("Jerry DB connection established!"); var dbo = db.db("admin"); dbo.collection("person"). find({ } ).toArray(function(err, result) { if (err) throw err; console.log(result); db.close(); } ); db.close(); } );
如果我只想读取 name 为 Jerry 的那条记录,只需要把 where 条件传入方法 find 即可:
从调试器里能观察到按照期望的方式被读取回来了:
步骤3 - 使用 Java 代码往 MongoDB 里插入数据
如果您是基于 Maven 进行依赖管理的 Java 项目,只需要在您的 pom.xml 里加入下面的依赖定义:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.6.4</version> </dependency>
然后使用命令行 mvn clean install
后,您的本地 maven 仓库里会多出三个和用 Java 连接 MongoDB 相关的库:
- bson
- mongodb-driver
- mongodb-driver-core
当然也可以手动逐一下载 jar 文件:https://mongodb.github.io/mongo-java-driver/
本文使用的是这三个文件,将它们下载到本地,再加入 Java 项目的 classpath 里。
Java 代码如下:
package mongoDB; import java.util.ArrayList; import java.util.List; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; public class MongoDBTest { private static void insert(MongoCollection<Document> collection) { Document document = new Document("name", "dog"); List<Document> documents = new ArrayList<Document>(); documents.add(document); collection.insertMany(documents); } public static void main(String args[]) { MongoClient mongoClient = null; try { mongoClient = new MongoClient("localhost", 27017); MongoDatabase mongoDatabase = mongoClient.getDatabase("admin"); System.out.println("Connect to database successfully"); MongoCollection<Document> collection = mongoDatabase .getCollection("person"); // insert(collection); FindIterable<Document> findIterable = collection.find(); MongoCursor<Document> mongoCursor = findIterable.iterator(); while (mongoCursor.hasNext()) { System.out.println(mongoCursor.next()); } } catch (Exception e) { System.err.println(e.getClass().getName() + ": " + e.getMessage()); } finally{ mongoClient.close(); } } }
和本教程步骤 2相比,上述代码的 insert 方法里还展示了如何用 Java 代码给 MongoDB 数据库里增加记录。
private static void insert(MongoCollection<Document> collection) { Document document = new Document("name", "dog"); List<Document> documents = new ArrayList<Document>(); documents.add(document); collection.insertMany(documents); }
执行 Java 应用,发现通过 insert 方法加到数据库的记录也能被顺利读出来。
总结
MongoDB 是近年来非常流行的一个介于关系数据库和非关系数据库之间的解决方案,采取面向文档的分布式设计思路,具有强大的可扩展性,表结构自由,并且支持丰富的查询语句和数据类型。本文首先介绍了 MongoDB 的本地环境搭建步骤,接着分别介绍了使用 Node.js 和 Java 对本地 MongoDB 进行数据读写的编程细节。