如何在Parse.com中进行“喜欢”查询

时间:2013-10-08 13:08:22

标签: javascript parse-platform

例如,如果我的数据库是:

{
    people: name: [{"first":"Billy", "last":"smith"}]
},
{
    people: name: [{"first":"bob", "last":"smith"}]
},
{
    people: name: [{"first":"thor", "last":"smith"}]
},
{
    people: name: [{"first":"hobo", "last":"smith"}]
}

我想要一些效果:query.like("b")让它返回第一,第二和第四个文档

Javascript API中是否有这样的内容?

1 个答案:

答案 0 :(得分:9)

contains(key, substring)方法是您想要的方法,但请注意,这只会在第二个和第四个文档上匹配。

原因是搜索区分大小写。一种常见的策略是添加一个Cloud Code处理程序,将可搜索的内容写入另一个字段before save,例如:

Parse.Cloud.beforeSave("people", function(request, response) {
    request.object.set(
        "search_name", 
        request.object.get("first").toLowerCase() 
            + " " 
            + request.object.get("last").toLowerCase()
    );
    response.success();
});

现在,您可以使用query.contains("search_name", searchString.toLowerCase())查找所有内容。

如果您希望只能搜索名字而不是姓氏,请添加其他字段(“search_first”),或者根据需要修改上述字段。