【问题标题】:accessing mongodb from nodejs - common CRUD methods从 nodejs 访问 mongodb - 常见的 CRUD 方法
【发布时间】:2015-08-20 02:23:43
【问题描述】:

我是 mongodb 和 nodejs 的新手。到目前为止,我已经能够创建一个新的 mongodb 数据库并通过 nodejs 访问它。但是我想写一些通用的方法来访问集合(CRUD),因为我的集合列表会越来越多。例如,我有一个包含书籍和作者的集合

var books = db.collection('books');
var authors = db.collection('authors');

exports.getBooks = function(callback) {
    books.find(function(e, list) {
        list.toArray(function(res, array) {
            if (array) callback(null, array);
            else callback(e, "Error !");
        });
    });
};

与此类似,我也有获取作者的方法。现在这变得过于重复,因为我也想为 CRUD 操作添加方法。有没有办法为我的所有收藏提供通用/通用 CRUD 方法?

【问题讨论】:

  • 是的,我确实阅读了文档。
  • 当您阅读文档时,您为什么会问这个问题?文档中有什么不清楚的地方吗?
  • 很清楚。可能我的问题你不清楚。我知道如何对集合进行 CRUD 操作。但我想以一种可以使用它们访问所有集合的方式编写这些 CRUD 方法。可能以某种方式使用猫鼬?

标签: node.js mongodb


【解决方案1】:

你应该看看 Mongoose,它可以很容易地从 node.js 处理 Mongodb,Mongoose js 有一个基于模式的解决方案,其中每个模式都映射到一个 Mongodb 集合,并且你有一组方法来操作这些通过模型收集,通过编译模式获得。几个月前我在同一个地方,发现 Mongoosejs 足以满足您的所有需求。

【讨论】:

    【解决方案2】:

    @Dilpa - 不确定您是否看过或正在使用 Mongoose link,但它对实现 CRUD 很有帮助。

    【讨论】:

      【解决方案3】:

      我编写了自己的服务来处理对 mongodb 文档的非常简单的 CRUD 操作。 Mongoose 非常出色,但对文档强加了结构(IMO 与 mongodb 的目的背道而驰——如果您要使用模式,为什么不直接使用关系数据库?)。

      https://github.com/stupid-genius/MongoCRUD

      此服务还具有作为 REST API 实现的优势,因此它可以被 node.js 应用程序或其他应用程序使用。如果您向服务器的根路径发送 GET 请求,您将获得一个屏幕,其中显示所有 CRUD 操作的语法(GUI 尚未实现)。我的基本方法是在 URL 路径 host/db/collection 上指定数据库和集合,然后在 POST 正文中传递文档。然后,路由处理程序只需将 doc 传递给适当的 mongodb 函数;我的服务只是以非常原始的状态公开这些方法(尽管它确实需要身份验证)。

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
      • @cpburnz:怎么样?
      猜你喜欢
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多