gpt4 book ai didi

javascript - 使用 parse.com 进行多个 OR 查询

转载 作者:行者123 更新时间:2023-12-03 08:53:01 24 4
gpt4 key购买 nike

我当前的项目使用 Parse.com (JS)。 SQL 中的一个简单的事情让我对 Parse.com 感到抓狂,我已经阅读了文档,但我必须说我很难正确理解“对象”方法。

无论如何,我需要做的就是对查询应用多个“OR”。假设我有三个表:

 UserObject(uid, username, password)
ResponseObject(rid, _userid, _questionid, response) // not used here
QuestionObject(qid, questionTitle, _userid)
_userid are pointers to the User table
_questionid is a pointer to the Question table

我首先需要从用户表中选择以“mat”开头的用户,我这样做:

var UserObject = Parse.Object.extend("UserObject");
var query = new Parse.Query(UserObject);
query. startsWith("username", "mat");\
query.find({
success: function(results) { etc...

在结果中,我现在拥有了一组我需要的用户。现在我需要选择问题表中 _userid 与该数组匹配的所有问题。我知道我可以使用 Parse.Query.or 如下:

var QuestionObject = Parse.Object.extend("QuestionObject");
var query1 = new Parse.Query(QuestionObject);
query1.equalTo("userid", results[0].get('uid'));
var query2 = new Parse.Query(QuestionObject);
query2.equalTo("userid", results[1].get('uid'));
var mainQuery = new Parse.Query.or(query1, query2);
mainQuery.find({...})

但我不知道结果有多大,如果我有 50 个用户回来,我不想使用 Parse.Query.or 50 次!所以我确信有一个简单的解决方案,但我被困住了!我想直接将“结果”传递给新查询或类似的东西!

最佳答案

不需要Parse.Query.or()Parse.Query 提供 containedIn(),如果对象属性的值是某些值数组之一,则该方法将进行匹配。

(问题指出 Question 对象上的 userId 是一个指针。这是一个很好的选择,但名称“userId”是一个令人困惑的选择。它是一个id 还是一个对象?我希望是一个对象,并且这个答案的其余部分假设)。

// results is an array of Parse.User from a prior query
var QuestionObject = Parse.Object.extend("QuestionObject");
var query = new Parse.Query(QuestionObject);
query.containedIn("userid", results);
query.find(...)

更全面,并有 promise ......

var userQuery = new Parse.Query("UserObject");
userQuery.startsWith("username", "mat");
userQuery.find().then(function(userObjects) {
var query = new Parse.Query("QuestionObject");
query.containedIn("userid", userObjects);
return query.find();
}).then(function(questions) {
// questions are Questions who's users' username begins with 'mat'
});

关于javascript - 使用 parse.com 进行多个 OR 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32613830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com