小编win*_*zer的帖子

为什么Mongoose会添加空白数组?

我正在尝试使用我的node.js应用程序开始使用Mongoose作为MongoDB的ODM.我注意到当我设计一个带有嵌入式文档的模式时,如果我没有为它添加值,它会在Mongo中存储一个空白数组"[]".为什么是这样?我正在尝试将历史更改存储到记录中,并且空白数组将意味着该更改删除了该值.这是一个示例模式.

schema.Client = new mongoose.Schema({
    name:{type:String, required:true},
    products:[{
        name:{type:String, index:true},
        startDate:Date,
        endDate:Date
    }],
    subdomain:{type:String, index:{unique:true}},
})
Run Code Online (Sandbox Code Playgroud)

当我使用名称和子域保存文档时,这是生成的文档.

{
    "name": "Smith Company",
    "products": [],
    "subdomain": "smith"
}
Run Code Online (Sandbox Code Playgroud)

为什么默认情况下会添加带有空白数组的产品,如何阻止它?

mongoose mongodb node.js

23
推荐指数
4
解决办法
1万
查看次数

猫鼬没有创建索引

尝试创建MongoDB索引.使用Mongoose ODM并在我下面的模式定义中,我将username字段设置为唯一索引.所有集合和文档都被正确创建,它只是不起作用的索引.所有文档都说应该在启动时运行ensureIndex命令来创建任何索引,但是没有任何索引.如果重要的话,我正在使用MongoLab进行托管.我也多次放弃收藏.怎么了.

var schemaUser = new mongoose.Schema({
    username: {type: String, index: { unique: true }, required: true},
    hash: String,
    created: {type: Date, default: Date.now}
}, { collection:'Users' });

var User = mongoose.model('Users', schemaUser);
var newUser = new Users({username:'wintzer'})
newUser.save(function(err) {
    if (err) console.log(err);
});
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js

21
推荐指数
3
解决办法
1万
查看次数

MongoDB for SaaS中的多个数据库

我正在node.js中构建一个SaaS应用程序,并希望将MongoDB用于Mongoose ODM的数据库.我需要支持数百到数千(希望)的多个客户,并且每个客户的数据之间没有交互.

我的想法是为每个客户创建一个新的数据库,以及一个拥有全局信息的"主"数据库.例如,应用程序将有一个登录页面,因此我希望将所有用户/密码信息存储在"主"数据库中,但是将所有用户的配置文件信息存储在客户所属的数据库中.我觉得这将是一个很好的设计,因为它可以完全隔离每个客户的数据,并使单独备份/恢复客户变得容易.

我关心的是从node.js连接到多个数据库对性能的影响.有谁知道这会对该应用程序产生什么影响,或者对该体系结构的任何意见?

奖励问题:您是否知道在SaaS解决方案中执行相反的操作并将所有客户的数据存储在单个数据库(使用customerid分隔)中的任何审计影响?

mongoose mongodb node.js

6
推荐指数
1
解决办法
2854
查看次数

标签 统计

mongodb ×3

mongoose ×3

node.js ×3

javascript ×1