Mongodb 的 Mongoose 与 Mongoose

2024-06-07

我正在学习 NodeJ。

要从 NodeJS 连接并使用 MongoDB,我看到很多使用 Monk 或 Mongoose 的示例。

这两个库等效吗?它们具有相同的功能还是都有特定的用途?

作为 NodeJS 的初学者,我应该使用哪个?

以下是使用 Monk 的一些代码示例:

var mongo = require('mongodb');
var monk = require('monk');
var db = monk('localhost:27017/nodejsapp');

----
exports.userlist = function(db) {
    return function(req, res) {
        var collection = db.get('users');
        collection.find({},{},function(e,docs){
            res.render('userlist', {
                "userlist" : docs
            });
        });
    };
};

这是使用 Mongoose 的示例:

   var mongoose = require('mongoose');
----
 mongoose.connect('localhost', 'test');
 var db = mongoose.connection;
  db.on('error', console.error.bind(console, 'connection error:'));
  db.once('open', function callback() {
   console.log('Connected to DB');
});

// User Schema
var userSchema = mongoose.Schema({
   username: { type: String, required: true, unique: true },
   email: { type: String, required: true, unique: true },
  password: { type: String, required: true},
});

他们是做同样的事情做同样的连接吗?或者他们有特定的目的吗?

尽管它们是解决同一基本问题的两种方法,但它们是不同的。 Mongoose 是一个相当复杂的完整 ORM。更多功能,但更复杂。 Monk 的范围较小,因此更容易理解。

我的建议是从基本的编码开始mongodb直接驱动模块。当您了解其工作原理以及其中的某些部分如何令人烦恼时,您就会了解其好处monk并可以尝试一下,看看你是否喜欢它。我不会推荐mongoose对于初学者。 Mongodb 已经很难学习了,虽然 mongoose 很有帮助,但它的 API 非常神奇,并且假设您已经了解 mongodb 的棘手方面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mongodb 的 Mongoose 与 Mongoose 的相关文章

  • 如何在node.js中找到两个地理点之间的距离?

    如何使用 node js 查找两个地理点 经度和经度的集合 之间的距离 我有使用谷歌地图距离矩阵服务的客户端 JavaScript 代码 我想在服务器端javascript中做同样的事情 在node js router js或datamod
  • Argon2 很难在 MacOS 上与 Angular 8 一起工作:实际上根本不工作

    我正在与 MacOS 莫哈维 角8 节点 v12 12 0 npm v6 13 4 并尝试让 Argon2 在我的 Angular 8 应用程序中工作 为了使用 Argon2 需要全局安装 gcc 和 node gyp 我确实按照 Argo
  • 如何使 Puppeteer 在客户端与 ReactJS 应用程序一起工作

    我对 React 相当陌生 我正在开发一个应用程序 它将拍摄网页的实际屏幕截图 并且该应用程序可以在所拍摄的屏幕截图上绘制和添加涂鸦 我最初使用 html2canvas 和 domToImage 来获取客户端屏幕截图 但它不会完全按照网页中
  • 箭头函数不会在 ES6 类中绑定 `this` 吗? [复制]

    这个问题在这里已经有答案了 我很惊讶这不起作用 我在跑iojs2 3 0 与 harmony arrow functions flag class Foo constructor this foo foo sayHi return gt t
  • 如何在组内推送多列的值

    看来我的查询不会像我期望的那样 我想分组name并将 location1 和 location2 映射到名为的数组中locations Data name Jack localtion1 Taiwan localtion2 France n
  • Knex 与 PostgreSQL 选择查询在多个并行请求上性能极度下降

    In brief 我正在开发一个 梦想中的 游戏 我的后端堆栈是 Node js 和带有 Knex 的 PostgreSQL 9 6 我在这里保存所有玩家数据 我需要经常请求它 其中一个请求需要进行 10 个简单的选择来提取数据 这就是问题
  • 从查询更新最后一个文档时遇到问题

    您好 我是 Mongodb 的新手 我目前正在尝试更新查询结果中的最后一个文档 但遇到问题 我知道如何使用获取最后一个文档 db collection find sort natural 1 limit 1 但我该如何更新呢 我尝试这样做
  • Mongoose 填充与对象嵌套

    使用之间是否有任何性能差异 查询的处理时间 猫鼬种群 http mongoosejs com docs populate html和直接对象包含 每种应该什么时候使用 猫鼬种群示例 var personSchema Schema id Nu
  • 如何在 Windows 上设置 Node.js 的工作目录?

    我刚刚安装了 Windows 版的 Node js 运行它真的是轻而易举 我想将它用作构建过程的一部分 将多个文件组合在一起 如下所示 settings var FILE ENCODING utf 8 EOL n DIST FILE PAT
  • EACCES:尝试在节点项目中使用 docker 卷时,mkdir 权限被拒绝...

    我试图使用 docker Volume 运行节点项目容器 docker run p 3000 3000 v myapp node modules v pwd myapp batzu frontend 并得到一个错误 EACCES permi
  • 如何在没有到期时间的情况下使 JWT 令牌失效

    正在使用 JWT 创建一个 Node js 后端应用程序 对我来说 要求很简单 授权令牌不应该有任何到期时间 但是当用户更改密码时 我在使 JWT 失效期间遇到问题 当用户更改密码时 我将创建一个新的 JWT 令牌 并删除旧的令牌 但用户仍
  • 在nodejs中从服务器下载.zip文件

    我正在使用 MEAN 其中我想允许用户从服务器下载 zip 文件 所以基本上我必须做以下事情 从某些数据创建 csv 文件 将该文件存储到某个目录中 将这些文件压缩为 zip 当用户单击该按钮时 应该下载并读取压缩文件 我已经完全达到了1
  • 咕噜玉错误

    每当我运行 grunt james 时 我都会收到错误 Warning pattern indexOf is not a function Use force to continue 现在这是我的玉石任务 jade options pret
  • Mongoose Schema“新”关键字

    在声明猫鼬模式时 我注意到使用 mongoose Schema and new mongoose Schema work 有什么区别吗 哪种方式更好 这是同一件事 来自source https github com LearnBoost m
  • Mongodb $addToSet 嵌套对象

    我正在尝试更新嵌套在另一个哈希下的数组对象 IE name mike instagram id 3423 slug mike photos 现在我想使用 addToSet 附加到 instagram 照片对象 但我不知道如何操作 这可以将照
  • 安装 gulp browserify 总是报错

    我尝试使用以下命令安装 gulp browserify npm install gulp browserify save dev 我已经成功安装了许多其他软件包 例如 gulp autoprefixer gulp concat gulp m
  • RSA Java 加密和 Node.js 解密不起作用

    我有一个系统 需要在 javascript 中生成 RSA 密钥对 然后将公钥存储在服务器端的数据库中 作为字符串 然后 Java 中的服务器端将使用存储的公钥对字符串进行加密密钥并将其发送到客户端 客户端将使用私钥解密该字符串 我在客户端
  • 使用 mongoDB 插入子文档

    我收集了以下文件 id 2 workspace name 1 widgets name 2 widgets name 3 widgets name 4 widgets 我怎样才能插入 id 1 blabla blabla 在 小部件 中的
  • 如果数据库关闭一段时间,MongoDB 会更改流超时

    我在nodejs中使用mongoDB更改流 一切正常 但如果数据库关闭需要超过10 5秒才能启动更改流会引发超时错误 这是我的更改流观察程序代码 Service prototype watcher function db let colle
  • 使用 mongoDB 重命名集合

    我无法重命名 mongoDB 中的集合 我可以看到它存在并且可以从中写入和读取数据 我已尝试使用节点 mongo 本机驱动程序进行以下操作 db collection mycollection renameCollection mynewc

随机推荐