Ich versuche, eine einfache Mongodb-Abfrage zu machen, die mich verrückt macht.... Ich habe die folgende Tabelle/DB:
[_id] => MongoId Object (
[$id] => 4f22efa1ef9dec8495b374bc
)
[h1] => a
[h2] => b
[h3] => c
[_id] => MongoId Object (
[$id] => 4f22efa1ef9dec8495b374bd
)
[h1] => d
[h2] => e
[h3] => f
Verwenden Sie die Befehlszeile des Mongo-Tools und geben Sie ein:
db.things.find({$or: [{'h1' : 'a'},{'h1': 'd'}]})
Ich verstehe:
{ "_id" : ObjectId("4f22efa1ef9dec8495b374bc"), "h1" : "a", "h2" : "b", "h3" : "c" }
{ "_id" : ObjectId("4f22efa1ef9dec8495b374bd"), "h1" : "d", "h2" : "e", "h3" : "f" }
Das ist in Ordnung. Wenn ich jedoch versuche, das Gleiche von PHP aus zu tun, erhalte ich nichts:
$m = new Mongo();
$db = $m->selectDB('testdb');
$collection = new MongoCollection($db, 'things');
$query = array( '$or' => array( array('h1' => 'a')),
array('h1' => 'd'));
$cursor = $collection->find($query);
Ich weiß nicht, was ich falsch mache, aber ich habe alles versucht (oder ich denke, so) für 3 Tage jetzt und es wird nicht funktionieren. Wenn ich Abfragen mit '>=' '<=' '<>' '<' '>' mache, funktioniert es gut, aber wenn ich '=' wie in diesem Fall verwende, funktioniert es nicht.
Vielen Dank für Ihre Bemühungen!