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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…