MongoDB和MySQL是兩種不同的數據庫系統,但有時候需要聯合查詢它們的數據。以下是一些關于如何通過Node.js和Mongoose將MongoDB和MySQL關聯查詢的示例。
首先,我們需要準備好MongoDB和MySQL數據庫。
const mongoose = require('mongoose');
const mysql = require('mysql');
我們需要分別建立MongoDB和MySQL數據庫的連接。以下是一個連接MongoDB數據庫的示例:
mongoose.connect('mongodb://localhost/mydatabase', {useNewUrlParser: true});
以下是一個連接MySQL數據庫的示例:
const connection = mysql.createConnection({
host : 'localhost',
user : 'myuser',
password : 'mypassword',
database : 'mydatabase'
});
connection.connect();
現在我們已經連接了兩個數據庫,我們可以使用Node.js和Mongoose查詢MongoDB,使用MySQL查詢MySQL。以下是一個查詢MongoDB的示例:
const User = mongoose.model('User', { firstName: String, lastName: String });
User.findOne({ firstName: 'John' }, function (err, user) {
if (err) return handleError(err);
console.log(user);
});
以下是一個查詢MySQL的示例:
connection.query('SELECT * FROM users WHERE firstName = ?', ['John'], function (error, results, fields) {
if (error) throw error;
console.log(results);
});
現在我們已經知道了如何單獨查詢MongoDB和MySQL,接下來是如何將它們關聯查詢。
以下是一個使用兩個查詢并將它們結合的關聯查詢示例:
const User = mongoose.model('User', { firstName: String, lastName: String });
User.findOne({ firstName: 'John' }, function (err, user) {
if (err) return handleError(err);
connection.query('SELECT * FROM orders WHERE userId = ?', [user.id], function (error, results, fields) {
if (error) throw error;
console.log(results);
});
});
這會首先查詢MongoDB中名為“John”的用戶,然后使用其ID查詢MySQL中的“orders”表。這將返回MongoDB用戶和MySQL訂單的相關數據。
以上是一個簡單的MongoDB和MySQL關聯查詢的示例。這種方法有許多變體,但這應該為你提供一個好的起點。