1

我正在从我的 mongoDB 数据库中检索文档,但我需要以 JSON 格式打印出来。正如 MongoKitten 文档所建议的那样,我将所有相关信息存储在一个数组中。我想打印出数组中每个元素的全部内容,即记住来自 MongoDB 的文档。我的代码如下:

import Foundation
import MongoKitten

let myDatabase = try MongoKitten.Database("mongodb://taylor:starwars1@ds129374.mlab.com: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)


}
4

2 回答 2

1

MongoKitten 带有一个扩展的 JSON 模块,您可以导入它:

import ExtendedJSON

您可以使用以下方法将文档数组 ( [Document]) 转换为扩展 JSON makeExtendedJSON()

myArrayOfDocuments.makeExtendedJSON()

这会返回一个Cheetah.Value. Cheetah 是 OpenKittens JSON 库。要获取 JSON 字符串,您可以serializedString()使用Cheetah.Value.


总结一下,使用它来将 BSON 文档数组转换为 JSON 字符串:

myArrayOfDocuments.makeExtendedJSON().serializedString()
于 2017-10-04T07:38:04.760 回答
0

如果您的 myTopics 对象是字典,您可以将其转换为 json,如下所示:

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

否则,您可以手动将 myTopics 对象转换为[String:String]字典,然后像上面那样将其转换为 json,但我不确定这是否是处理 mongodb 对象的方法。

于 2017-09-16T00:33:14.637 回答