Swift Parse PFQuery 未显示 "equalTo" 或 "contains" 的结果
Swift Parse PFQuery is showing no results with "equalTo" or "contains"
我有一个问题我似乎无法解决也找不到答案。我正在使用 Parse 库在 Swift 中开发一个 iOS 应用程序。
我有一个 Mongo DB 通过 Heroku 并且我可以使用 向它写入数据Parse 没有问题。现在我需要 search(查询)数据存储。我需要能够在名为 'name' 的 "column" 中搜索任何名称,而不仅仅是确切的标题。
例如,"Ticket to Ride" 是一个名称,而 "Ticket to Ride: Europe" 是另一个名称。如果用户搜索 "Ticket to Ride",我需要在查询中显示两者。
现在,"whereKey contains" 和 "whereKey equalTo" 都没有返回结果。
let gamesQuery = PFQuery(className: "games")
print ("Searching for \(gameTitle)")
gamesQuery.whereKey("name", contains: gameTitle)
gamesQuery.findObjectsInBackground(block: { (objects, error) in
if error != nil {
print (error as Any)
return
}
print ("Count : \(objects!.count)")
if let games = objects{
for game in games {
if let gameName = game["name"] as? String {
print ("Game name :\(gameName)")
}
}
}
})
我放置了一些 Print 语句用于调试(并且将删除它们和 count 如果这已经投入生产。
- className "games" 确实存在(我可以 运行 通过终端 window 或 Robo 3T 进行查询)。
- key "name" 是已经存储的gameTitles 如"Uno", "Ticket to Ride" or "Monopoly"
- "name" 已编入索引
- 结果集始终为零(无论是使用"equalTo"还是"contains"
这一定是我所缺少的简单内容。提前致谢
这样试试:
let gamesQuery = PFQuery(className: "games")
print ("Searching for \(gameTitle)")
gamesQuery.whereKey("name", matchesRegex: gameTitle, modifiers: "i")
gamesQuery.findObjectsInBackground(block: { (objects, error) in
if error != nil {
print (error as Any)
return
}
print ("Count : \(objects!.count)")
if let games = objects{
for game in games {
if let gameName = game["name"] as? String {
print ("Game name :\(gameName)")
}
}
}
})
使用 "i" 修饰符,您忽略了文本大小写,也许这就是问题所在。
我有一个问题我似乎无法解决也找不到答案。我正在使用 Parse 库在 Swift 中开发一个 iOS 应用程序。
我有一个 Mongo DB 通过 Heroku 并且我可以使用 向它写入数据Parse 没有问题。现在我需要 search(查询)数据存储。我需要能够在名为 'name' 的 "column" 中搜索任何名称,而不仅仅是确切的标题。
例如,"Ticket to Ride" 是一个名称,而 "Ticket to Ride: Europe" 是另一个名称。如果用户搜索 "Ticket to Ride",我需要在查询中显示两者。
现在,"whereKey contains" 和 "whereKey equalTo" 都没有返回结果。
let gamesQuery = PFQuery(className: "games")
print ("Searching for \(gameTitle)")
gamesQuery.whereKey("name", contains: gameTitle)
gamesQuery.findObjectsInBackground(block: { (objects, error) in
if error != nil {
print (error as Any)
return
}
print ("Count : \(objects!.count)")
if let games = objects{
for game in games {
if let gameName = game["name"] as? String {
print ("Game name :\(gameName)")
}
}
}
})
我放置了一些 Print 语句用于调试(并且将删除它们和 count 如果这已经投入生产。
- className "games" 确实存在(我可以 运行 通过终端 window 或 Robo 3T 进行查询)。
- key "name" 是已经存储的gameTitles 如"Uno", "Ticket to Ride" or "Monopoly"
- "name" 已编入索引
- 结果集始终为零(无论是使用"equalTo"还是"contains"
这一定是我所缺少的简单内容。提前致谢
这样试试:
let gamesQuery = PFQuery(className: "games")
print ("Searching for \(gameTitle)")
gamesQuery.whereKey("name", matchesRegex: gameTitle, modifiers: "i")
gamesQuery.findObjectsInBackground(block: { (objects, error) in
if error != nil {
print (error as Any)
return
}
print ("Count : \(objects!.count)")
if let games = objects{
for game in games {
if let gameName = game["name"] as? String {
print ("Game name :\(gameName)")
}
}
}
})
使用 "i" 修饰符,您忽略了文本大小写,也许这就是问题所在。