2017-09-15 17 views
0

mongoDBデータベースからドキュメントを取得していますが、JSON形式で印刷する必要があります。 MongoKittenのドキュメンテーションが示唆するように、関連するすべての情報を配列に格納します。配列の各要素の内容全体を出力したいのですが、これはMongoDBの文書を覚えています。次のように私のコードは次のとおりです。JSON形式のMongoDBドキュメントの印刷

import Foundation 
import MongoKitten 

let myDatabase = try MongoKitten.Database("mongodb://taylor:[email protected]:29374/taylorswiftengine") 
let myCollection = myDatabase["my_collection"] 


Request.addHandler(forMethod: "GET", withRoute: "/:resource/:id1") 
{ 


(routeParams:RouteParams) in 

    let myTopics = try! myCollection.find("topic" == "\(routeParams["id1"]!)") 

    let allTopics = Array(myTopics) 


} 

答えて

0

ごmyTopicsはあなたがそれはこのようにJSONに変換することができ、辞書をオブジェクトの場合:

let dict = ["key1": "B", "key2": "A", "key3": "C"] 
let jsonData = try JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted) 

そうでない場合は、手動[String:String]辞書にと変換よりもmyTopicsオブジェクトを変換することができ上記のようなjsonにするが、mongodbオブジェクトを扱う方法があれば分からない。あなたはmakeExtendedJSON()を使用して、拡張JSONへの文書([Document])の配列を変換することができ

import ExtendedJSON 

myArrayOfDocuments.makeExtendedJSON()

これを

+0

私のデータは次のようになります。 '[{ "_id":" A3D813E8-B16E- 「メール」:「[email protected]」、「topic」:「ポケモン」}、{"_id": "D6926E07-7797- "email:" [email protected] "、" topic ":" pokemon "}、{" _id ":" 0EF27D36-58B3-3 "、" 41DC-849B-3854543931E0 " 「メール」:「[email protected]」、「topic」:「ポケモン」}、{"_id": "6DB65277-E806- 43C1-997D-69A21A0E3B4F "、"メッセージ ":"大好き "、"メール ":" [email protected] "、"トピック ":"ポケモn "}]' –

+0

それはjsonserialization – Kingalione

+0

で動作しません、それは致命的なエラーを引き起こします:( –

1

MongoKittenは、インポートすることができ、拡張JSONモジュールが付属していますCheetah.Valueを返します。チーターはOpenKittens JSONライブラリです。 JSON文字列を取得するにはCheetah.ValueserializedString()メソッドを使用できます。 、物事をまとめるJSON文字列にBSONドキュメントのあなたの配列を変換するためにこれを使用するには


myArrayOfDocuments.makeExtendedJSON().serializedString() 
関連する問題