2016-04-13 20 views
0

ben ve diğer bazı gereksinimi için benim bakış sayfasına indirmeden/alma aynı (Scala/Play çerçevesi ile) mongodb içine json dosyası ekleme ediyorum, ama bu sefer json dosyasında bir "_id" parametresi ile geliyor.MongoDB sonuçlarından _id nasıl kaldırılır?

Ama sadece o herhangi herhangi bir "_id" parametresini sahip değildir, sadece benim gerçek json dosyası gerekir. Mongodb öğreticisini, varsayılan olarak herhangi bir koleksiyon belgesi için bir _id ile sakladığını okudum.

lütfen haber verin ben almak ya MongoDB herhangi _id olmadan benim asıl json dosyasını almak için şansı var mı nasıl. İşte

db.testtable.find({},{"_id" : false}) 

:

bu

veritabanında depoluyor json sonucudur

{ 
     "testjson": [{ 
     "key01": "value1", 
     "key02": "value02", 
     "key03": "value03" 
    }], 
    "_id": 1 
} 

cevap

2

ReactiveMongo dev guide ve API'a bakarsanız, bir similar way as the MongoDB shell numaralı projeksiyon desteğini görebilirsiniz. Eğer JSON serialization kullandığınız olarak

Sonra, sen

collection.find(selector = BSONDocument(), projection = BSONDocument("_id" -> 0)) 

yapabilir anlamak Veya edebilirsiniz:

collection.find(selector = Json.obj(), projection = Json.obj("_id" -> 0)) 
+0

teşekkür ediyor, senin yorumun başına eklemiş, ama bu kez de ben _ID benim json içinde eklenir görebilirsiniz. Yukarıdaki sorguyu tanımla – Dhana

+0

Aynı dosyayı diğer dosyama ekledim, şimdi çok iyi çalışıyor. Yardım ettiğin için teşekkür ederim !! – Dhana

1

Sen kabuğunda bu sorguyu kullanabilirsiniz (ben "_ID" parametresi Buna ihtiyacım yok) biz koleksiyonundan _id dönmemeyi mongodb anlatıyorsun. Ayrıca böyle false yerine 0, kullanabilirsiniz: scala için

db.testtable.find({},{"_id" : 0}) 

Sürücü sözdizimi başına olarak dönüştürmek gerekir.

+0

sayesinde Cevabınız için evet o koleksiyonundan herhangi _ID olmadan veriyor, eğer onu kabuk konsolumda çalıştır. Ama ben bunu scala'da nasıl uygulayabilirim bilmiyorum. – Dhana

+0

Sadece dokümantasyonda bulun. Orada değil mi? –

+0

evet, Oynat/Scala belgelerinde kontrol ediyorum, ama bulamadık. Cevabınız için – Dhana