我試圖用id來找到MongoDB中的值:如何通過Id在MongoDB中查找元素? (斯卡拉/升降機)
var id = S.param("id") openOr ""
val qry = QueryBuilder.start("id").is(id).get
def render = {
val items = Delegacja.findAll(qry)
".my_list *" #> items.map(e =>
".my_list_item" #> <li>{e.gdzie_od1}</li> &
".my_list_item_id" #> <li>{e.id}</li>
)
}
型號:
package code.model
import _root_.net.liftweb.record.field._
import net.liftweb.mongodb.record._
import net.liftweb.mongodb.record.field.ObjectIdPk
class Delegacja private() extends MongoRecord[Delegacja] with ObjectIdPk[Delegacja]{
def meta = Delegacja
object gdzie_od1 extends StringField(this, 30)
object gdzie_do1 extends StringField(this, 30)
object data_od1 extends StringField(this, 500)
object data_do1 extends StringField(this, 500)
}
object Delegacja extends Delegacja with MongoMetaRecord[Delegacja]
或只是val items = Delegacja.find("Id" -> id)
或val items = Delegacja.find("Id" -> id.toString)
或val items = Delegacja.find("id", id)
並沒有什麼發現,ID爲好,當我通過某個名字看它的確定,但通過ID沒有結果.. 有人可以告訴我我做錯了什麼嗎?
嗯我覺得有一些線索。 (和真正find
變化id
至_id
;))
當我這樣做:
val md1 = Delegacja.createRecord.gdzie_od1(gdzie_od1).gdzie_do1(gdzie_do1).save
S.notice(md1.id.is.toString)
val md = Delegacja.find("_id", md1.id.is.toString)
S.notice(md.is.toString)
我從S.notice(md.is.toString)
Empty
但是當我改變val md = Delegacja.find("_id", md1.id.is.toString)
到val md = Delegacja.find("_id", md1.id.is)
是OK所以在viewitem.scala
我需要以某種方式轉換string (id)
我得到作爲參數鏈接到oibjectid
,如何處理它?
class ViewItem {
var id = S.param("id") openOr ""
val qry = QueryBuilder.start("_id").is(id).get
def render = {
val items = Delegacja.find("_id", id) // THIS id.ToObjectIdPK some how ..
S.notice(items.toString)
".my_list *" #> items.map(e =>
".my_list_item" #> <li>{e.gdzie_od1}</li> &
".my_list_item_id" #> <li>{e.id}</li>
)
}
...
}