我的应用程序需要使用mongodb进行正常的数据存储,并保存相当大的文件。因此,我开始使用mongodb(用于普通数据存储)和gridfs(用于大文件)的插件 我正在使用grails 2.3.4并试图找出使用mongodb和gridfs所包含的插件的问题。
我一直在搜索整个互联网(包括stalkoverflow),找出任何共存但仍然徒劳的插件。因为无论我使用什么组合的可用插件,它都显示出错误,说明兼容性问题。
我正在使用驱动程序mongo-java-driver-2.11.3.jar
我最终尝试了目前可用的所有插件。我的build-config文件如下所示: <<<
// compile ":mongodb:1.3.3"
// compile ":mongodb:1.0.0.GA"
// compile ":gorm-mongodb:0.5.4"
// compile ":zk-mongodb:1.1-M1"
compile ":mongodb-morphia:0.8.2"
compile ":mongo-file:1.1.1"
// compile ":mongodb-gridfs:0.5.beta"
> 我知道我在这里遗漏了一些东西。 有没有人使用grails2.3.4和mongodb与gridfs?
请指出正确的插件或发送工作样本的代码段来帮助我。
提前谢谢大家。
答案 0 :(得分:1)
当我使用“:mongodb-gridfs:0.5.beta”时,我遇到了类似的问题。事实上,即使我试图删除插件(通过我的IDE),它仍然是错误的。我从plugins.mongodb-gridfs=0.5.beta
删除了application.properties
,然后我的应用程序可以重新构建。
您不需要单独的插件来使用GridFS,它实际上是MongoDB Java驱动程序的一部分。但是,您需要使用较低级别的API,而不是使用默认的Grails GORM内容 - 有关如何执行此操作的一些信息here。
GridFS API的工作方式与驱动程序的其余部分略有不同,但here's an example。要创建要使用的GridFS,您需要new GridFS(mongo.getDB(databaseName))
。
我没有一个完整的工作示例向您展示,但我希望您能从这些不同的例子中拼凑出您需要的东西。
答案 1 :(得分:0)
我一直在使用webfs,它过去对我们非常有用。它是一个轻量级的grails插件,用于使用Mongo的gridfs管理文件。有关详细信息,请参阅https://github.com/dlaidlaw/mongo-web-filesystem。
我在文档管理模块中使用webfs插件来管理任何类型的文档,最大大小为250MB。我使用的是mongodb:1.2.0。
我没有使用Grails 2.3.4进行测试,但它适用于2.0,2.1和2.2。