Code前端首页关于Code前端联系我们

MongoDB入门教程:开发环境搭建以及Node.js和Java的读写访问

terry 2年前 (2023-09-26) 阅读数 46 #数据库

MongoDB是近年来关系型数据库和非关系型数据库之间非常流行的解决方案,采用分布式面向文档的设计思想,具有很强的扩展性,自由的表结构,支持丰富的查询命令和数据类型。如今,MongoDB 凭借灵活的数据存储方式,逐渐成为 IT 行业非常流行的非关系型数据库解决方案。

在做项目的过程中,笔者也尝试了从零开始学习MongoDB数据库的过程,所以我想通过文章的形式来分享一下我在学习过程中的一些经验。 MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

第一步——MongboDB环境搭建

MongoDB支持的数据结构非常松散,是类似于json的bson格式。这种灵活的格式允许 MongoDB 存储更复杂的数据类型。 Mongo最大的特点就是它支持的查询语言(Query Language)非常强大。它的语法有点类似于面向对象的查询语言,因此可读性很强,几乎可以实现关系数据库中大部分类似单表查询的功能。 。

这一步代表了学习MongoDB的第一步:搭建环境。

从MongoDB官方网站下载安装包。 MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

我将mongoDB安装在C盘MyApp目录下,安装完成后,bin文件夹下有几个可执行文件。将bin文件路径添加到Windows环境变量中。MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

使用以下命令行启动 MongoDB 服务器:

mongod --dbpath C:MyAppmongoDBjerryserverdb
请参阅以下打印的控制台消息:

70876 port DB=7 pii=18 DB=1
表示进程 ID 16588 的进程启动了 MongoDB,监听端口号为 27017。 MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

控制台中还有一些其他有用的提示,例如:

对数据的读写访问和配置无限制- 无 设置读取和写入数据的权限

警告:此服务器已绑定到本地主机 - 此服务器已绑定到本地主机 - 可通过本地主机访问此服务器 MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

使用命令 netstat -yes |在cmd中找到“27017”,找到正确的进程ID在端口27017上监听进程16588:MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

打​​开MongoDB Compass,这是一个MongoDB GUI,在MongoDB安装过程中会自动安装。

主机名输入localhost,端口输入27017,点击Connect进行连接: MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

连接后,在admin数据库下新建一个集合:MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

在我的例子中,集合名称是person,点击INSERT DOCUMENT 创建记录是 MongoDB Compass 自动生成的 _id,第二个字段名称为 name,值为“Jerry”: MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

再次点击 INSERT DOCUMENT 生成两条人记录。 MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

现在我们将打开另一个命令行窗口来使用在 MongoDB Compass 中创建的两人记录。

命令行mongo localhost:27017/admin表示连接到这个数据库中的admin数据库MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

此时可以看到从控制台开始连接到上一个命令行的输出MongoDB 服务器收到的输出: MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

命令行db.person.find(),在管理员数据库的person表中打印两条记录,说明环境配置成功。 MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

第2步 - 使用Node.js访问MongoDB

在localhost:27017的服务器上,在database admin下创建一个名为person的数据库表,并插入两条记录: MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

上图是使用成功插入的两条记录MongoDB 指南针。
接下来,我们将使用 Node.js 来读取这两条记录。 ? ).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();
}
);

如果我只想读取名为 Jerry 的记录,我只需要将 where 条件传递给 find 方法: MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

从调试器中,我可以观察到它正在以预期的方式读回: MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

第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仓库将会多出三个与MongoDB和Java链接相关的库:

  • bson
  • mongodbmongodbmongodbmongodbmongodb mongodb❓驱动程序当然,你也可以手动一一下载jar文件:https://mongodb.github.io/mongo-java-driver/MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

    本文用到这三个文件,请下载到本地然后添加到类路径中的 Java 项目。 MongoDB 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

    Java代码如下: MongoDB 入门教程:开发环境搭建及 Node.js 和 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相比,上述代码插入方法还展示了如何使用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 入门教程:开发环境搭建及 Node.js 和 Java 的读写访问

    总结

    MongoDB是近年来关系型数据库和非关系型数据库中非常流行的解决方案。它采用分布式面向文档的设计思想,扩展性强,表结构松散,支持丰富的查询命令和数据类型。本文将首先介绍搭建本地 MongoDB 环境的步骤,然后介绍使用 Node.js 和 Java 向本地 MongoDB 读写数据的编程细节。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门