如何从Swift传递JSON MongoDB Query对象


  • 我正在将JSON数据从我的iOS应用程序传递到我的后端MongoDB服务器
  • JSON数据由两个父字段userData&queryData
  • 我通过POST请求将其作为req.body传递,并在服务器中检索数据作为req.body.userDatareq.body.queryData
  • 我使用swiftCODABLE将此对象编码到jSON并发送到服务器

一切正常。我可以提取req.body.userData并使用它。我不明白的是,如何从req.body.queryData中提取mongo查询并将其传递给mongofind()方法?

例如-如何通过

{
"fieldOne": {"$in": [1, 2, 3]}, 
"fieldTwo": {"$ne": "Admin"}
}

以上是筛选数据的MongoDB语法。如何使可编码结构发送此格式?现在我只是简单地将结构声明为string。我是服务器端和JSONS的新手。

这是我的结构-就像我说的,req.body.userData工作良好

struct QueryData: Codable {
var fieldOne: String
var fieldTwo: String
}
import Foundation
let mongo = """
{
"fieldOne": {"$in": [1, 2, 3]},
"fieldTwo": {"$ne": "Admin"}
}
"""
struct FieldOne: Codable {
var `in`: [Int]

private enum CodingKeys: String, CodingKey {
case `in` = "$in"
}
}
struct FieldTwo: Codable {
var ne: String

private enum CodingKeys: String, CodingKey {
case ne = "$ne"
}
}
struct QueryData: Codable {
var fieldOne: FieldOne
var fieldTwo: FieldTwo
}
let jsonObject = try! JSONSerialization.jsonObject(with: mongo.data(using: .utf8)!, options: [])
print(jsonObject)

我试图解析你在快速操场的例子

最新更新