は、私は私のオリジナルの答えの下にあなたのコメントを理解していれば、あなたはに必要な答え
を更新しましたにtrue
が実際にあなたのAccount
インスタンスのbool値である{"where" : {"active" : true}}
の形でJSON 文字列を生成します。このJSON文字列は、MongoDBのクエリ/フィルタとして使用されます。
このため、計算されたプロパティをAccount
クラスに追加することをお勧めします。このプロパティはNSJSONSerialization
を使用して、boolからJSON データを作成し、このデータからString()
を使用してJSON 文字列を作成します。
例:
class Account {
var active : Bool!
var boolQuery: String? {
let dict = ["where": ["active": active]]
if let json = try? NSJSONSerialization.dataWithJSONObject(dict, options: []),
query = String(data: json, encoding: NSUTF8StringEncoding) {
return query
}
return nil
}
}
使用:
let acc = Account()
acc.active = true
if let query = acc.boolQuery {
print(query)
}
プリント:
{ "" { "アクティブ":真}}
let acc = Account()
acc.active = false
if let query = acc.boolQuery {
print(query)
}
プリント:
{ "":{ "アクティブ":偽}}
私はあるクラス(私が得た場合は、セットアップで "誰が何をして" わからないんだけど何のために責任があります)、それはあなたが必要とするコードのようなものだと私には思われます。
また、当然のフリー機能することができます:それはあなたの質問から少し不明確だ、と私は
func boolQuery(account: Account) -> String? {
let dict = ["where": ["active": account.active]]
if let json = try? NSJSONSerialization.dataWithJSONObject(dict, options: []),
query = String(data: json, encoding: NSUTF8StringEncoding) {
return query
}
return nil
}
等
前答え
の意味がわからない "手作業でこれらの種類のクエリを入力する" ...とにかく、あなたはAccount
インスタンスの配列を持っていると思います。
それから、この配列をフィルタリングし、active
がtrue
あるインスタンスのみを取得するのは非常に簡単です:result
ここ
let result = arrayOfAccounts.filter { $0.active }
をactive
が真であるアカウントのみを含む配列です。
問題は私がこれらのインスタンスを迅速に所有していないこと、彼らがmongoDBに住んでいることです。私はこれらのクエリを使用してそれらを取得します。ありがとう – ilkerc
@ilkerc私は私の答えを更新しました。 – Moritz