2016-09-15 2 views
0

{ $or:[{TextField1:{$eq:"DX93E6XX6R"}}], $or:[{TextField1:{$eq:"N4JXFTNP64"}}] }Was passiert in dieser MongoDB-Abfrage?

Es gibt zwei Dokumente in der Sammlung. Einer mit einem "TextField1" -Wert gleich dem ersten Ausdruck und einer mit dem gleichen Feld, das dem zweiten Ausdruck entspricht.

Mein Gedanke war:

Find all documents where TextField1 equals "DDX93E6XX6R" AND TextField1 equals "N4JXFTNP64"

Antwort

2

Es ist nicht eine vernünftige Abfrage, weil Sie nicht zwei Felder $or im gleichen Objekt mit dem Namen haben können, so dass nur die zweiten (Überschreiben der ersten) verwendet werden soll . Und ein $or mit einem Element ist das gleiche wie nur dieses Element.

So ist es das gleiche wie:

{TextField1:{$eq:"N4JXFTNP64"}} 

, die die gleiche ist wie:

{TextField1: "N4JXFTNP64"} 

Welche ist:

Find all documents where TextField1 equals "N4JXFTNP64" 
0

Wenn Sie suchen, mit Dokumenten entsprechen entweder Wert, dann könnte Ihre Aussage entweder:

sein

{$ oder: [{TextField1: "foo1"}, {TextField1: "foo2"}]}

oder ...

{TextField1: {$ in: [ "foo1", „foo2 "]}}