Javascript 如何在云代码中执行关系查询?

Javascript 如何在云代码中执行关系查询?,javascript,parse-platform,Javascript,Parse Platform,我的课程名为\u User&Photo&PhotoJourney。我想根据某个动作向随机用户发送一张照片。在PhotoTravel类中,我有一个字段photo(指针指向photo类)和photoentto(指针指向\u用户类) 我的要求是获得所有用户,不包括照片已发送的用户 var PhotoObj = Parse.Object.extend("Photo"); var photo = new PhotoObj(); photo.id = request.params.photoId; var

我的课程名为\u User&Photo&PhotoJourney。我想根据某个动作向随机用户发送一张照片。在PhotoTravel类中,我有一个字段
photo
(指针指向photo类)和
photoentto
(指针指向\u用户类

我的要求是获得所有用户,不包括照片已发送的用户

var PhotoObj = Parse.Object.extend("Photo");
var photo = new PhotoObj();
photo.id = request.params.photoId;

var Query1 = new Parse.Query("User");

var Query2 = new Parse.Query("PhotoJourney");
Query2.select("photoSentTo");
Query2.equalTo("photoID", photo);

Query1.doesNotMatchKeyInQuery("objectId", "photoSentTo", Query2);
Query1.find({
    success: function(results)
    {
    },
    error : function() 
    {
    }
});
如果执行
Query2.find()
,它会给出正确的结果。i、 e.我想从\u User表中排除的用户列表,但我不确定如何排除,以及要传递给
的参数是什么(“,”,“)

我对云代码开发非常陌生。如果我做错了,请纠正我


提前谢谢。

对不起,我实际上不认为你只能通过查询来解决这个问题。我认为你需要这样做:

  • 获取照片与照片匹配的所有PhotoTravely对象的列表 当前照片
  • 通过检索
    photocentto
    对象,创建用户对象列表 在所有
    PhotoTravely
    对象中(不包括用户)
  • 查询所有用户(allUsers)
  • 由于现在有两个用户对象列表,请过滤掉这些对象 来自存在于excludeUsers中的诱惑者
  • 结果列表是可用于获取随机用户的列表

    如果你有很多用户,这是一个相当繁重的操作。您应该创建一个云代码函数,该函数在服务器上执行此任务,并且只返回随机用户对象

    作为替代方法,您可以在照片对象上创建一个新字段(或为其创建一个联接表),该字段包含指向已接收照片的所有用户的指针数组。然后,在查询用户时,可以排除此列表中存在的用户。或者数组只能包含objectid,您可以在用户查询中将其用作约束:

    userQuery.notContainedIn("objectId", photo.get("sentToUsers")); // Array of objectIds of receivers
    

    谢谢你的回复。我试过了,但我还是得到了所有的用户。usersToExcludeQuery查询的响应-映射对象数组-{“photoSentTo”:{“uuuU类型”:“指针”,“类名”:“uU用户”,“对象ID”:“cavvHDegMt”},“对象ID”:“ZCfiU5wDa1”,“createdAt”:“2014-05-14T12:39:37.522Z”,“更新日期”:“2014-05-14T12:39:37.522Z”,“uuU类型”:“对象”,“类名”:“PhotoTourney”}响应也包括来自
    PhotoTourney
    类的字段。这是用户不排除的原因吗?尝试仅执行usersToExcludeQuery,看看是否产生任何结果。如果为空,则不排除任何用户…在执行
    usersToExcludeQuery
    后。它给出2个用户对象。(我总共有5个用户).Response-
    {“result”:[{“photocentto”:{“指针”,“类名”:“{u用户”,“objectId”:“cavvHDegMt”},“objectId”:“ZCfiU5wDa1”,“createdAt”:“2014-05-14T12:39:37.522Z”,“updatedAt”:“2014-05-14T12:39:37.522Z”;“对象类型”:“对象”,“类名”:“phototojourney”:“phototojourney”;{“photocentto”:“指针”,“类名”:“objectifyNPHRJ1TTK,“createdAt”:“2014-05-15T07:04:31.491Z”,“updatedAt”:“2014-05-15T07:04:44.410Z”,“_utype”:“Object”,“className”:“PhotoJourney”}]}
    好的,我想我看到了问题。给我几分钟时间考虑一下。它起作用了。谢谢你的帮助。第二种方法更好,如果我们考虑到用户数量的话。