从nodejs访问mongodb - 常见的CRUD方法

时间:2013-11-29 16:16:09

标签: node.js mongodb

我是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方法?

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

@Dilpa - 不确定您是否查看过或正在使用Mongoose link,但它可以帮助您实施CRUD。

答案 2 :(得分:-1)

我编写了自己的服务来处理mongodb文档上非常简单的CRUD操作。 Mongoose是优秀的,但是在文档上强加了结构(IMO违背了mongodb的目的 - 如果你要有一个模式,为什么不使用关系数据库?)。

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

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