node.js - 如何有条件地选择 NoSQL 数据库?
问题描述
我有一个与 MongoDB 数据库连接的应用程序。应用程序正在解析外部数据并将这些数据放入数据库。现在我有不同的 3 个产品数据源(比如说和) vegetables
,我想将产品数据放到单独的数据库中。fruits
beverages
我app.js
是这样解析数据的:
const Product = require('./models/product');
...
let product = await Product.findOneAndUpdate({ SKU }, $set: data);
...
我想在 app.js 级别的某个地方定义将选择哪个数据库,即基于脚本参数。
现在我现在model.js
看起来像这样:
const mongoose = require('../db/mongodb');
const ProductSchema = new mongoose.Schema({
SKU: {
type: String,
required: true,
unique: true
},
name: {
ES: { type: String },
FR: { type: String },
EN: { type: String },
DE: { type: String },
IT: { type: String },
},
description: {
ES: { type: String },
FR: { type: String },
EN: { type: String },
DE: { type: String },
IT: { type: String },
}
});
module.exports = mongoose.model('Product', ProductSchema);
我的mongodb.js
:
const mongoose = require('mongoose');
let mongoDB = 'mongodb+srv://user:pass@url/database1';
mongoose.connect(mongoDB, {
useCreateIndex: true,
useNewUrlParser: true,
useUnifiedTopology: true
});
mongoose.set('useFindAndModify', false);
let db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
module.exports = mongoose;
到数据库的链接是硬编码在require
文件中的mongodb.js
。有条件地选择mongoDB
链接的最佳选择是app.js
什么?
解决方案
只创建多个连接会更容易、更正确,不是吗?
const mongoose = require('mongoose')
const conn = mongoose.createConnection('mongodb+srv://user:pass@url/database1');
const conn2 = mongoose.createConnection('mongodb+srv://user:pass@url/database2');
推荐阅读
- c++ - 是否存在具有对数时间插入、删除和查找(带距离)的排序数据结构?
- android - UnhandledPromiseRejectionWarning: CordovaError: No emulator images (avds) found
- java - 如何使用 java opencv 检测图像特征?
- php - 下载php后如何将多张照片放在一个压缩文件中
- lambda - 如何使用java 8将以下代码编写为功能方式
- android - 如何使用 libgdx 在 Android Studio 中绘制平铺地图
- php - jplist 默认 where 条件与 php mysql 的默认顺序
- java - 如何在 JavaFX 中实现多线程
- scala - 如何在“Scala”中按键减少 [不在 Spark 中]
- azure-relay - 当 Internet 中断时,Azure 中继混合连接侦听器不会重新建立