Rest 如何使用子查询筛选对象?
使用与Parse REST api交互。我正在尝试为用户获取所有没有相关Rest 如何使用子查询筛选对象?,rest,parse-platform,Rest,Parse Platform,使用与Parse REST api交互。我正在尝试为用户获取所有没有相关B的As 我知道我可以为用户获得Bs: parseClient.getObjects('B', { where: { user: { __type: "Pointer", objectId: "id here", className: "_User" } }, keys: 'a' }, callback) 然后提取对象ID以获取坏的A ID aIds = [
B
的A
s
我知道我可以为用户获得Bs:
parseClient.getObjects('B', {
where: {
user: {
__type: "Pointer",
objectId: "id here",
className: "_User"
}
},
keys: 'a'
}, callback)
然后提取对象ID以获取坏的A ID
aIds = [ Bs ].map(function (b) {
return b.a.objectId
})
然后查询与id匹配的As负数
parseClient.getObjects('A', {
where: {
objectId: { $nin: aIds }
}
}, callback)
但是一个用户可以拥有比查询限制200更多的B。如何重写它以使用子查询
$dontSelect 嵌套的键参数不起作用,这使得类似于此的内容变得平淡
parseClient.getObjects('A', {
where: {
objectId: {
$dontSelect: {
query: {
className: 'B',
where: { user query },
},
key: 'a.objectId
}
}
}
}, callback)
// { code: 105, error: 'invalid field name: ' }
$notInQuery
似乎没有办法将$notInQuery放入where
的根目录或引用当前对象
parseClient.getObjects('A', {
where: {
$notInQuery: {
className: 'B',
where: { user query },
key: 'a'
}
}
}, callback)
// { code: 102, error: 'Invalid key $notInQuery for find' }
救命啊 这是解析模型的一个限制,我找到的唯一解决方法是相应地调整您的模式 一种方法是使用
a
上包含所有相关User
指针的关系,然后对关系字段执行$ne
:
where: {
'relationColumn' : {
'$ne': {
'__type': 'Pointer',
'className': '_User',
'objectId': 'user b id here'
}
}
}
啊,那看起来很有希望。我明天再看一看。第二看,不建议在数组关系()中存储大量数据。建议最多为100个项目使用
array
类型的列,而relation
类型的列用于更大的列表(它在幕后创建完整的集合,因此可以处理数百万行)。