用于MongoDB的Node.js模块

22
4个回答

23

这取决于你想从数据中得到多少抽象层级。如果你想要类似ORM的东西,那么Mongoose是显而易见的选择并且很受欢迎。

然而,node-mongodb-native驱动程序为你提供了几乎整个MongoDB API 的干净副本,由于BSON被转换成JSON,JavaScript是一种灵活的动态语言,所以没有必要使用ORM。后者具有定义模式的好处,可以帮助进行验证和其他任务,但也限制了你的灵活性。

Mongoskin是建立在node-mongodb-native之上的库,它能够让你更轻松地处理JavaScript方法绑定、连接和游标。它非常轻量级,因此你可以坚持基础或者做更多的事情。 这个库是我的个人首选,我们的团队已经围绕它构建了自己的工具和验证系统。


1
我和Chris F.一起工作。在我们的情况下,不使用Mongoose的主要原因是测试。 Mongoose对象在集合中声明,这使得测试(和模拟)有些困难。 - theprogrammer
恭喜,您现在有2013个声望值,祝您2013年新年快乐 :) - Saw

7

Mongoose 是一个受欢迎的选择。但是它的文档和 MongoDB 的文档一样糟糕(如果不是更糟)。


我同意。Mongoose的文档让我选择了另一个Node模块来完成我的MongoDB项目。 - 1111161171159459134

4
我个人更喜欢 Mongolian,这是最接近Mongo shell的东西,并且使用起来很简单直接。
fork添加了非常简单的集合初始化。

这个已经不再维护了。最后一次提交是4年前。 - Nicu Surdu
@NicolaeSurdu,你意识到这个答案是从2011年的吗? - OneOfOne
是的,但这并不改变图书馆已经不再维护的事实... - Nicu Surdu
蒙古语是否支持批量插入? - Ronak Amlani

3

Mongoose不支持批量插入,而且它是基于Schema的。如果你尝试为同一Collection创建不同的Schema,它会抛出异常。在开始使用之前,请仔细考虑它是否适用于你的情况。


1
你说得对。Mongoose 更像是基于 SQL 的,采用了基于模式的策略。在我看来,这确实阻碍了人们理解基于文档的无模式原则。 - 1111161171159459134

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接