2014-02-26 4 views
2

저는 프로젝트을 사용하여 mongodb 데이터를 받았습니다.casbah를 사용하여 문서의 ID 이름을 얻으십시오

val mongoClient = MongoClient() 
    val db = mongoClient("configServerTest") 
    val coll = db(moduleName) 
    val allDocs = coll.find() 
    allDocs.foreach(allDocs => println(allDocs)) 

결과는

{ "_id" : "version" , "data" : "0.0.1"} 
{ "_id" : "portNum" , "data" : 7001} 
{ "_id" : "url" , "data" : "http://localhost"} 

이다 그러나 나는 list_id 이름을 가져하기 만하면됩니다. 어떻게 그것을 casbah를 사용하여 할 수 있습니까?

("version","portNum","url") 

답변

0

api doc에서 찾을 수 있습니다.

def find[A, B](ref: A, keys: B)(
    implicit arg0: (A) ⇒ commons.TypeImports.DBObject, 
    arg1: (B) ⇒ commons.TypeImports.DBObject): CursorType 

이 컬렉션에있는 개체에 대한 쿼리입니다.

빈 DBObject는 컬렉션의 모든 문서와 일치합니다. 지정된 필드에 관계없이 _id 필드는 항상 반환됩니다.

그래서

val allDocs = coll.find(new BasicDBObject(), new BasicDBObject()) 
+0

그것은이 방법 '발 쿼리 = MongoDBObject는 ("_ ID"-> 1)에서 일 것 발 allDocs = coll.find (새 BasicDBObject(), 쿼리)' – Shashika

+0

를 명확히하기 위해 즉, 두 번째 ** 문서는 반환하려는 필드를 정의하는 [Projection] (http://docs.mongodb.org/manual/reference/method/db.collection.find/#projections)입니다. –

+0

@Shashika 실제로 ** 투영 **에'{_id : 0}'이 있으면'_id' 필드 **가 생략됩니다. –