sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb samtalesystem

Tag et kig på denne side om, hvordan du laver avancerede MongoDB-forespørgsler:http://www .mongodb.org/display/DOCS/Advanced+Queries

Du kan bruge en kombination af $and og $in operatører for at få det, du har brug for. Ved at bruge mongo-skallen ville din forespørgsel se sådan ud:

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

Jeg tror, ​​at dette også kan give dig det tilsvarende:

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

Derfra er det et spørgsmål om at konvertere ovenstående til det sprog/DSL, du bruger, og sortere efter dato.

I din kode behøver du ikke ($and => array()) indpakning af hvert af de objekter, du prøver at finde. Fjern dem, så det ser sådan ud:

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



  1. Hvordan listes alle databaser i mongo-skallen?

  2. Integrationstest med MongoDB?

  3. Hvordan administrerer jeg MongoDB-forbindelser i en Node.js-webapplikation?

  4. Indsættelse af et PHP-objekt i en MONGO DB