2015-08-24 21 views
5

Parse varlıklarından birinde bir Boolean sütun var ve bu sütuna sahip tüm satırların açık bir şekilde false olarak ayarlanmasını veya varsayılan undefined değerine bırakılmasını istiyorum.Parse etkin bir boole "yanlış veya tanımsız" sorgu nasıl yapılır?

Bu sütun için undefined değerine sahip satırlar döndürmediğinden equalTo('myBoolColumn', false) yapamıyorum. Parse documentation, , notEqualTo sorgularının, dizinlerden yararlanamadıkları için verimli olmadığından, notEqualTo('myBoolColumn', true) yapmamayı tercih ediyorum.

Bu belge, containedIn kullanılmasını önerir, ancak beklenen sonucu elde etmek için containedIn('myBoolColumn', [false, undefined]) sorgu yazmak yanlış olur.

notEqualTo boolean sorguları hala dizine alınmış gibi görünüyor, ancak bunu onaylayan yetkili bir kaynak bulamadım ve bu sorgunun bir dizin kullanıp kullanmadığını nasıl test edeceğimi bilmiyorum.

Hangisini kullanmalıyım? notEqualTo('myBoolColumn', true) veya containedIn('myBoolColumn', [false, undefined])?

+0

bir nesi var eğer/else koşulu. Gerçek bir şey yaparsa, yanlış veya tanımlanmamış – soulshined

+0

Kod yazarken bir sorgu yazıyorum. –

+1

Evet. Belirli bir parametre için bir sorgu yazdınız (equalTo ('', true)). Ve eğer bu parametreyle eşleşmezse, doğal olarak yanlış, tanımlanmamış nesneler – soulshined

cevap

6

Öyle gibi iki sorgu birleştirmek istiyorum:

var falseQuery = new Parse.Query('YourClass'); 
falseQuery.equalTo('myBoolColumn', false); 

var undefinedQuery = new Parse.Query('YourClass'); 
undefinedQuery.doesNotExist('myBoolColumn'); 

//this is the query you should run 
var query = Parse.Query.or(falseQuery, undefinedQuery); 
query.find({....}); 
+0

Teşekkürler, Bunu deneyin ve Parse konsolumdaki _Slow Queries_ analytics sayfasında bir göz atın. –

+0

Doğru olarak işaretlemek ister misiniz? Bunu doğru bir şekilde yapmanın Parse yolu budur. Gerçekten takdir ederdim. – AlexKoren

2

Eğer yanlış veya tanımsız olsun için kontrol ediyoruz yana, ayrıca daha basit yapabilirsiniz:

var query = new Parse.Query('YourClass'); 
query.notEqualTo('myBoolColumn', true); 

query.find({...}); 
+0

Teşekkürler, ama açıkça benim soruda bir "notEqualTo" yapmamayı tercih ettim. –

+0

@PascalBourque heyecanlandı, benim kötü :) – vikMage

İlgili konular