2017-05-06 5 views
0

var norm = [ 'kann', 'lustig', 'top lustig', 'Abendessen', 'Hund', 'Hallo', 'flo', Sake, 'hai' , 'Video', 'reimt', 'fein', 'gut', 'public', 'Test', 'irish', 'hii', 'Babys', 'Kaffee' , 'glücklich', 'arbeiten', 'komödie', 'indien', 'besten', 'top', 'Gefühle', 'krishna', 'test']

schema.find({ $or: [ {"head":{"$in":norm}}, {"key":{"$in":norm}} ],"privacy":{"$ne":"Private"} },function(err,res){}); 

i das Ergebnis in aufsteigender Reihenfolge auflisten müssen gemäß der Norm, aber ich habe nicht das bekommen genaues Ergebnis aus der obigen Abfrage.

+0

welche Ergebnisse sprechen wir – Remario

+0

ich brauche sowohl für den jeweiligen Begriff in Norm suchen mit Kopf- und Schlüsselfeld in meinem Schema und die Ergebnisliste aus? – Jagadeesh

+0

Sie wissen, dass Projektion nicht richtig funktioniert? – Remario

Antwort

1

Diese Abfrage wird nie funktionieren, dies ist das Format für das Schema suchen. db.collection.find(query, projection) wo Projektion sind die Felder, die Sie von der Abfrage zurückgeben möchten, wenn es erfolgreich ist. Auch in Ihrer Abfrage ist sowohl norm ein Array richtig?

Sie liegen falsch: schema.find({ $or: [ {"head":{"$in":norm}}, {"key":{"$in":norm}} ],"privacy":{"$ne":"Private"} },function(err,res){});.

Diese "privacy":{"$ne":"Private"} ist nicht in der Abfrage enthalten, deshalb ist es in der Projektion Abschnitt.

sollte in etwa so aussehen: schema.find({ $or: [ {"head":{"$in":norm}}, {"key":{"$in":norm}}],"privacy":{"$ne":"Private"}});.

Hier ist eine elegante Möglichkeit für diese Abfrage.

Schema.find({ $or: [ {"head":{"$in":norm}}, {"key":{"$in":norm}}]).where("privacy").ne("Private").exec(function(err,doc){}); 
+0

erstens verwenden Sie Mungo für die Treiberschnittstelle? – Remario

+0

sollte auch das Schema sollte eine Modellinstanz des Schemas sein. – Remario

+0

ya, aber ich bekomme die gleichen Ergebnisse mit Ihrer Abfrage, wie ich zuvor bekam. – Jagadeesh

Verwandte Themen