2016-12-21 2 views
-1

Ich muss Daten aus einer MongoDB-Sammlung abrufen. Hier ist ein Beispiel meiner Sammlung.So rufen Sie Daten mit MongoDB ab, wie angegeben

kf_promotion:

{ 
    "_id":Objectid(12we34rbgty768ju), 
    "name":"Raj", 
    "emails":"[email protected]" 
} 
{ 
    "_id":Objectid(12we34rbgty768y65ju), 
    "name":"Ram", 
    "emails":"[email protected],[email protected]" 
} 
{ 
    "_id":Objectid(12we34rbgty768y65du), 
    "name":"Ramlu", 
    "emails":"[email protected]" 
} 

Ich habe 3 Dokumente in der obigen Sammlung. Ich muss Daten nach [email protected] finden. In einigen Datensätzen sind mehrere E-Mails vorhanden - durch Kommas getrennt.

Wenn die angegebene ([email protected]) zu dieser durch Komma getrennten E-Mail-Zeichenfolge gehört, wird dieses Dokument ebenfalls abgerufen. Hier brauche ich die Abfrage mit Bedingung. Bitte hilf mir.

Antwort

-1

Sie sollten json_decode und dann foreach verwenden. Hier

+0

Können Sie es bitte erklären? – subhra

0

ist die Abfrage:

//your db connection file 
$collection = $db->tablename; 
$output = $collection->find(array('emails' => '[email protected]')); 

Hoffe, es hilft !!!

+0

@ prakash tank: Können Sie bitte sagen, wie viele Dokumente mit Ihrer Suchbedingung abgerufen werden. – subhra

+0

** Wenn das angegebene (email = [email protected]) zu dieser durch Komma getrennten E-Mail-Zeichenfolge gehört, die dieses Dokument ebenfalls abruft ** erfüllt diese Bedingung nicht den obigen Code –

+0

Try FIND_IN_SET() –

0

nach Ihrem give Zustand der Spalte E-Mail-ID enthält id mehr E-Mail durch Komma getrennt, müssen Sie einen LIKE oder REGEX. Versuchen Sie dies:

$collection = $db->tablename; 
$regex = new MongoRegex("/^[email protected]/i"); // i for case insensitive search 
$output = $collection->find(array('emails' => $regex)); 
Verwandte Themen