namequery && nameBquery
写法是错误的,虽然能找到记录,但结果并不完整。请参考以下正确写法,任选一种,结果都是一样的。
// ----------------------------
// 第一种:使用 containedIn
// ----------------------------
var query = new AV.Query('Todo');
query.containedIn('name',['范冰冰','刘亦菲']);
query.equalTo('gender','女');
query.find().then(function (results){
// 记录数量
console.log("containedIn:", results.length);
// results.map(function(result){
// console.log(
// result.id,
// result.get('name'),
// result.get('gender')
// )
// });
}, function (error) {
// 输出错误
console.log(error);
});
// ----------------------------
// 第二种:使用 CQL
// ----------------------------
var cql = 'select * from Todo where name in (\'范冰冰\',\'刘亦菲\') and gender = \'女\'';
AV.Query.doCloudQuery(cql).then(function (data) {
// 记录数量,注意结果包含在 data.results 中
console.log("cql:", data.results.length);
}, function (error) {
// 输出错误
console.log(error);
});
// ----------------------------
// 第三种:使用复合查询
// ----------------------------
var namequeryA = new AV.Query('Todo');
namequeryA.equalTo('name','范冰冰');
var namequeryB = new AV.Query('Todo');
namequeryB.equalTo('name','刘亦菲');
// name 为「范冰冰」或「刘亦菲」
var namequery = AV.Query.or( namequeryA, namequeryB);
var genderquery = new AV.Query('Todo');
genderquery.equalTo('gender','女');
// 同时满足 gender 为「女」
var query = AV.Query.and(namequery, genderquery);
query.find().then(function (results){
// 记录数量
console.log("or+and:",results.length);
}, function (error) {
// 输出错误
console.log(error);
});