私はlift-jsonをクラス抽出器でbson文字列をレンダリングし、その後、mongo Document
クラスコンストラクタを使用してそのbson文字列を持つドキュメントインスタンスを使用します。lift-jsonのクラスエクストラクタコンストラクタmongo bson arrayの使い方は?
$or
bson.Itを表現する方法は古典的なjson配列ではないようです。
{"$or": [
{"username": "administrator"},
{"phone":"110"},
{"email":"[email protected]"},
{"pen_name":"lorancechen"}
]}
このbsonアレイを表すリフトクラス抽出器の使い方はありますか?
さらに、appとmongoの間に文字列を使用する理由は、単純なソケットの下で通信するということです。次のように
UPDATE例を追加
抽出通常の配列クラス:
import net.liftweb.json._
import net.liftweb.json.Extraction._
case class Name(name: String)
case class JsonArray(array:List[Name])
object JsonClient extends App {
implicit val formats = DefaultFormats
val names = Name("jone01") :: Name("jone02") :: Nil
val array = JsonArray(names)
val jsonString = prettyRender(decompose(array))
println(jsonString)
}
がOUTPUT:この
{"$or": [
{"username": "administrator"},
{"phone":"110"},
{"email":"[email protected]"},
{"pen_name":"lorancechen"}
]}
すべてのフィールドのキーを表現する方法
{
"array":[
{
"name":"jone01"
},
{
"name":"jone02"
}
]
}
(例えば、username
,)は、内部の "$ or"要素は共通のキー名ではなく、クラステンプレートを使用する方法を見つけることができません。
なぜこれは通常の配列ではないと思いますか?ドキュメントは配列ではありません。すべてのドキュメントキーを配列の個々の要素として表現する方法を尋ねていますか? –
@BlakesSeven、私は例を追加しました。私はそれが私の不思議なものをまっすぐに表現すると思います。 – LoranceChen
実際にコードを自分でテストすることなく、出力に実際に 'array'という名前のキーが含まれていると言っていますか?それでも、 'JsonArray(names) 'の出力は' $ or'(文書の配列を使用する)の入力として直接作成されません。それは最も単純な使い方のようです。 –