MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

system konwersacji mongodb

Spójrz na tę stronę, aby dowiedzieć się, jak wykonywać zaawansowane zapytania MongoDB:http://www .mongodb.org/display/DOCS/Zaawansowane+zapytania

Możesz użyć kombinacji $and i $in operatorzy, aby uzyskać to, czego potrzebujesz. Używając powłoki mongo, twoje zapytanie wyglądałoby mniej więcej tak:

db.yourCollectionName.find({$and: {from: {$in: ["toUser", "loggedOnUser"]}}, {to: {$in: ["toUser", "loggedOnUser"]}}})

Uważam, że może to również dać ci odpowiednik:

db.yourCollectionName.find({$and: {$or: [{from: "toUser"}, {to: "toUser"}]}}, {$or: [{from: "loggedOnUser"}, {to: "loggedOnUser"}]}}})

Następnie wystarczy przekonwertować powyższe na język/DSL, którego używasz, i posortować według daty.

W swoim kodzie nie potrzebujesz ($and => array()) owijanie każdego z obiektów, które próbujesz znaleźć. Usuń je, aby wyglądało to tak:

$cursor = $collection->find(
    array('$or' => 
        array(
            array("from"=>"$profile", "to"=>"$loggeduser"),
            array("to"=>"$profile", "from"=>"$loggeduser")
        )
    )
) ->limit(50)->sort(array('date' => -1));



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb grupuj według pierwszego znaku

  2. render_template z wieloma zmiennymi

  3. Zaktualizuj obraz za pomocą collectionfs

  4. Czy MongoDB jest bezpieczny wątkowo?

  5. Złącze do zlewu Kafki:Brak przypisanych zadań, nawet po ponownym uruchomieniu