我必须要查询一个域对象mongodb吗?
如果我只想显示一些原始数据怎么办?mongodb从我的控制器查询的语法是什么?
我试过了
"def var = db.nameOfMyCollection.find()"
Run Code Online (Sandbox Code Playgroud)
但是它说在我的控制器类中没有db这样的属性。
我知道我的应用程序正在连接到数据库,因为我正在监视mongo server日志,并且在启动grails应用程序时它会将连接数增加了一个。
假设您在构建配置中添加了mongodb java驱动程序依赖项,并刷新了您的依赖项。
创建一个名为MongoService.groovy的grails服务,并放置以下代码。
不要忘记导入mongodb
package com.organisation.project
import com.mongodb.*
class MongoService {
private static MongoClient mongoClient
private static host = "localhost" //your host name
private static port = 27017 //your port no.
private static databaseName = "your-mongo-db-name"
public static MongoClient client() {
if(mongoClient == null){
return new MongoClient(host,port)
}else {
return mongoClient
}
}
public DBCollection collection(collectionName) {
DB db = client().getDB(databaseName)
return db.getCollection(collectionName)
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我们可以在控制器或其他服务中使用此MongoService。
现在,您可以在控制器中进行以下操作。
不要忘记导入mongodb.DBCursor
package com.organisation.project
import com.mongodb.DBCursor
class YourControllerOrService {
def mongoService //including Mongo service
def method(){
def collection = mongoService.collection("your-collection-name")
DBCursor cursor = collection.find()
try{
while(cursor.hasNext()){
def doc = cursor.next()
println doc //will print raw data if its in your database for that collection
}
}finally {
cursor.close()
}
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅mongodb java docs。
| 归档时间: |
|
| 查看次数: |
8625 次 |
| 最近记录: |