gpt4 book ai didi

node.js - Mongoose 节省

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:19 29 4
gpt4 key购买 nike

model.save() 让我很困惑。

示例。我将我的 mongoose.model(mongoose.schema) 移动到单独的 model.js 文件中。当我使用这种方法创建模型时,以下问题困扰着我。

save方法如何找到我与db建立的连接。如果我有 2 个 mondogDB 连接实例,它会选择哪一个?

这是架构

const Schema = require("mongoose").Schema;
const mongoose = require("mongoose");

const User = new Schema({
name: String,
password: String,

date_created: {
type: Date,
default: Date.now
},

authorized: {
type: Boolean,
default: false
}
});

module.exports = mongoose.model("User", User);

最佳答案

因此,mongoose.model() 的输出是一个模型,并且给定的模型始终绑定(bind)到一个连接。

默认情况下,大多数人只使用 mongoose.connect() 提供的连接和连接池。一旦你调用它,缓存的 Mongoose 模块就会在幕后使用单例连接对象。例如,如果我调用您的模型,我会这样做:

const mongoose = require('mongoose');
const User = require('./models/user');

mongoose.connect(); // or pass in a custom URL

// from here, User will default to the mongoose-internal connection created in the previous line

如果我想使用多个连接,我无法使用 mongoose 内部单例,因此我必须使用创建的连接进行操作。例如:

// ./schemas/user.js
// You now export the Schema rather than the module in your file
//module.exports = mongoose.model('User', User);
module.exports = User;

然后在调用代码中:

const config = require('./config'); // presumably this has a couple mongo URLs
const mongoose = require('mongoose');
const UserSchema = require('./schemas/user');

const conn1 = mongoose.createConnection(config.url1);
const conn2 = mongoose.createConnection(config.url2);

const User1 = conn1.model('User', UserSchema);
const User2 = conn2.model('User', UserSchema);

// now any users created with User1 will save to the first db, users created with User2 will save to the second.

关于node.js - Mongoose 节省,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51674576/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com