学Nodejs主要学什么数据库?

学Nodejs主要学什么数据库?

mongodb 和 mysql怎么选择?主要精力学哪个比较好?

两个数据库都稍微会一点,只会简单的增删改查。 mongodb 等操作感觉很简单,配合API挺好用,但是遇到两三个表之间 有关联关系的时候,我总处理的不好… mysql用的人多,感觉日后免不了要玩mysql ,sql语句水也貌似比较深,同一个查询功能,大牛写的sql 少,而且普遍看不大懂…

学node已经要花费不少精力,剩余精力也有限,只能选择一种 主力去学习 , 求大牛指导!

14 回复

学Node.js主要学什么数据库?

MongoDB 和 MySQL 怎么选择?

在学习 Node.js 时,选择一个合适的数据库是非常重要的。通常情况下,初学者可能会面临 MongoDB 和 MySQL 的选择。这两种数据库各有优缺点,适用于不同的场景。

MongoDB

MongoDB 是一个文档型数据库,非常适合处理非结构化或半结构化的数据。它使用 JSON 格式的文档来存储数据,并且支持灵活的模式。以下是一个简单的 MongoDB 示例:

const { MongoClient } = require('mongodb');

async function main() {
    const uri = "your_mongodb_connection_string";
    const client = new MongoClient(uri);

    try {
        await client.connect();
        console.log("Connected to MongoDB");

        const database = client.db('testdb');
        const collection = database.collection('users');

        // 插入数据
        const insertResult = await collection.insertOne({ name: 'Alice', age: 25 });
        console.log(insertResult);

        // 查询数据
        const findResult = await collection.find({ name: 'Alice' }).toArray();
        console.log(findResult);
    } finally {
        await client.close();
    }
}

main().catch(console.error);

MySQL

MySQL 是一个关系型数据库,适合处理需要严格数据一致性和事务性的场景。它使用 SQL 语言进行数据操作。以下是一个简单的 MySQL 示例:

const mysql = require('mysql2/promise');

async function main() {
    const connection = await mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: 'password',
        database: 'testdb'
    });

    try {
        // 创建表
        await connection.query(`
            CREATE TABLE IF NOT EXISTS users (
                id INT AUTO_INCREMENT PRIMARY KEY,
                name VARCHAR(255) NOT NULL,
                age INT
            )
        `);

        // 插入数据
        const [insertResult] = await connection.query(
            'INSERT INTO users (name, age) VALUES (?, ?)',
            ['Bob', 30]
        );
        console.log(insertResult);

        // 查询数据
        const [rows] = await connection.query('SELECT * FROM users WHERE name = ?', ['Bob']);
        console.log(rows);
    } finally {
        await connection.end();
    }
}

main().catch(console.error);

如何选择?

  • MongoDB 更适合处理复杂的数据结构,不需要复杂的表关联。
  • MySQL 更适合处理需要严格数据一致性和事务性的场景,特别是当涉及多个表之间的复杂关联时。

如果你希望快速开发并且对数据一致性要求不是特别高,可以选择 MongoDB。如果你需要处理大量数据并且需要复杂的事务管理,那么 MySQL 可能更适合你。

综合考虑时间和精力,你可以根据项目需求和个人兴趣来决定。如果未来的工作中需要处理关系型数据库,那么掌握 MySQL 会更有优势。


更多的mongodb

我觉得玩玩或者小项目可以mongodb 想保险一点或者中型项目还是mysql靠谱

我一直觉得,js的对象可以随意扩展刚好对应了mongodb的文档没有模式啊

sql。 别跳 mongodb 的坑

先学主流的mysql哪都能用到,mongodb感觉还不成熟,初学者用起来简单,但要设计出合理的结构不容易

如果你要走node这条路,还是建议你mongodb,当然sql属于基础,mysql必须也是要会的。 如果你觉得处理不好多表关联,你需要在package.json里加入async

非关系型数据库更纯粹,是真正的专注持久存储,关系型数据库是存储加数据逻辑的一个结合体。 我觉得以后的方向,存储应该只关系自己的范畴,不要再抢程序语言的戏。

关系型数据库学mysql NoSQL型 学mongdb

优先学习sql,自己感兴趣玩玩mongdb还可以, mongdb坑不少

稳定的还是MySQL吧

楼主mongodb关联多个操作的时候怎么回滚!,你现在还是mysql吗

对于Node.js开发者来说,选择使用哪种数据库主要取决于具体的应用场景和个人或团队的需求。下面我会分别介绍MongoDB和MySQL的特点,以及它们各自的适用场景,最后提供一些选择建议。

MongoDB

特点:

  • 文档型数据库:数据以JSON格式存储,非常适合用于存储非结构化数据。
  • 易于扩展:可以通过添加更多的服务器来实现水平扩展。
  • 灵活的数据模型:可以轻松地修改数据结构而无需对整个系统进行大量更改。
  • 强大的索引支持:能够快速检索数据。
  • 内置复制和分片:支持高可用性和大数据量存储。

适用场景:

  • 社交媒体应用、实时分析应用、IoT设备数据存储等。

示例代码:

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true, useUnifiedTopology: true });

const userSchema = new mongoose.Schema({
    name: String,
    age: Number
});

const User = mongoose.model('User', userSchema);

// 增
const newUser = new User({name: 'Alice', age: 25});
newUser.save().then(() => console.log('User saved'));

// 查
User.find({}, (err, users) => {
    if (err) return console.error(err);
    console.log(users);
});

MySQL

特点:

  • 关系型数据库:数据存储在表格中,具有固定的模式。
  • SQL语言:提供了强大且丰富的查询语言。
  • ACID事务支持:保证了数据的一致性、原子性、隔离性和持久性。
  • 广泛使用:有大量的社区支持和成熟的解决方案。

适用场景:

  • 银行业务系统、电商网站、银行交易系统等需要强一致性的应用。

示例代码:

const mysql = require('mysql');

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'test'
});

connection.connect();

// 增
connection.query('INSERT INTO users(name, age) VALUES("Bob", 30)', (error, results, fields) => {
    if (error) throw error;
    console.log('User inserted');
});

// 查
connection.query('SELECT * FROM users', (error, results, fields) => {
    if (error) throw error;
    console.log(results);
});

connection.end();

选择建议:

  • 如果你的项目需要处理大量非结构化数据,并且希望快速开发和扩展能力,那么选择MongoDB更为合适。
  • 如果你需要一个成熟的关系型数据库来处理事务和复杂查询,或者项目中已有大量基于SQL的应用,那么选择MySQL更合适。

最终的选择取决于项目的具体需求。如果时间和资源有限,专注于一个数据库可能会更好。通常情况下,如果是一个新的项目,且需要灵活性和快速开发,MongoDB可能是更好的选择;如果是企业级应用,对数据一致性要求较高,则应考虑MySQL。

回到顶部