Обновленный ответ
Если я правильно понял ваш комментарий под мой первоначальный ответ, вы должны генерировать JSON Строка в виде {"where" : {"active" : true}}
где true
фактически является булево значение вашего Account
экземпляра. Эта строка JSON будет использоваться в качестве запроса/фильтра для MongoDB.
Для этого я предлагаю добавить вычисленное свойство к классу Account
. Это свойство будет использовать NSJSONSerialization
для создания данных JSON из bool и использовать String()
для создания JSON String с этими данными.
Пример:
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
}
Etc.
Предыдущий ответ
Это немного неясно, из вашего вопроса, и я не уверен, что вы имеете в виду с «Я печатаю такие запросы вручную» ...но я полагаю, что, во всяком случае, у вас есть массив из Account
экземпляров.
Тогда это очень легко отфильтровать этот массив и получить только те случаи, когда active
является true
:
let result = arrayOfAccounts.filter { $0.active }
Здесь result
представляет собой массив, содержащий только учетные записи, где active
является истинным.
Проблема в том, что я не владею этими экземплярами в быстром, они живут в mongoDB. Я получаю их, используя эти запросы. Спасибо – ilkerc
@ilkerc Я обновил свой ответ. – Moritz