gpt4 book ai didi

mongodb - 在 Mongo 中是模式还是无模式

转载 作者:可可西里 更新时间:2023-11-01 09:48:43 26 4
gpt4 key购买 nike

我喜欢 Mongodb 的无模式架构。这使得它非常灵活。然而,Mongoose ODM 提供了某些要求,例如模型关系和数据验证。

我阅读了一些 SO 线程,发现 Mongoose 在处理真正复杂的文档结构方面的性能与 native MongoDB 驱动程序相比并不是那么好,在我的例子中是 NodeJS 驱动程序。

我不想失去无架构的灵 active ,这让我可以随时更改我的结构,这真的很棒。但是我想用模型关系。

哪种做法更好:无模式或特别是在 Mongo 中使用模式?

最佳答案

这里有一些方法可以避免 mongoose 提供的一些开销,以及一种在脚本中为 NodeJs 驱动程序访问 native mongoDb 命令的方法。

您可以访问 mongodb.Db instance .

因此您可以访问 db constructor用于 Nodejs 驱动程序。

所以我可以在我的节点 js/mongoose 文件中做这样的事情

mongoose.connection.db.dropCollection("collectionName", function(err, doc){
if(err) console.log(err);
console.log(doc);
})

此外,如果您不希望 mongoose 为从查询返回的对象提供额外属性,您可以使用 .lean()。如果你使用 lean,你会得到普通的 javascript 对象而不是 mongoose 文档。精益要快得多。

示例::

Model.find().lean().exec(function (err, docs) {
docs[0] instanceof mongoose.Document // false
});

关于mongodb - 在 Mongo 中是模式还是无模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41077208/

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