For example, If my database is:
{
people: name: [{\"first\":\"Billy\", \"last\":\"smith\"}]
},
{
people: name: [{\"first\":\"bob\", \"last\":\"smith\
-
The contains(key, substring) method is the one you want, but note that this will only match on the second and fourth docs.
The reason is that searches are case-sensitive. A common tactic is to add a Cloud Code handler to write searchable content to another field before save, e.g.:
Parse.Cloud.beforeSave("people", function(request, response) {
request.object.set(
"search_name",
request.object.get("first").toLowerCase()
+ " "
+ request.object.get("last").toLowerCase()
);
response.success();
});
Now you can use query.contains("search_name", searchString.toLowerCase())
to find them all.
If you want to be able to search on just the first-name and not the last-name, either add another field ("search_first"), or just modify the above, depending on your needs.
讨论(0)
- 热议问题