如何在没有模型的情况下使用mongoose查询mongoDB



所以我想在不使用模型的情况下查询我的mongodb,让我在前面说,我正在寻找除了使用mongodb驱动程序之外的选项。因此,在一个应用程序中,我为该数据库设置了mongoose模型和模式,我正在构建一个使用同一数据库的独立应用程序,当我意识到该应用程序将使用存储在该数据库中的凭据时,我正在对用户进行身份验证。我"需要"定义一个模型来验证用户吗?

例如,在我定义模型的另一个应用程序中,我只会使用Model.findOne({})命令,但在这个应用程序中我看不到重新定义模型本身的好处,当然我可以简单地将代码复制/粘贴到新的应用程序中。然而,我担心,如果我需要在一个应用程序中添加/删除数据库模型中的字段,如果我无法更新另一个,它可能会破坏该应用程序和该应用程序中的数据。我在这里引用了这篇文章

然而,这篇文章有点过时了,我没有像最热门的答案那样连接到数据库,然后再进行处理,通常我会在server.js文件中打开到数据库的连接,并在其他地方使用该连接来处理模型。但这在这里可能不可能。

我发现Mongo是一个没有模式的数据库,所以如果你想使用mongoose作为抽象层来与数据库交互,你只需要定义一个模型并使用设置strict: false,这将允许你像在mongoose定义模式的普通应用程序中一样与数据库交互,但是,我想指出的是,如果您正在创建一个文档,并且您插入了一个image字段,那么您需要小心使用此选项。但在另一个应用程序中,它需要一个名为imageUrl的字段,然后您就会遇到问题,因为它会在文档中创建一个字段image。这就是strict: true模型的美妙之处,如果你传入一个不符合猫鼬模型定义的字段,它就会忽略它。

最新更新