我有一个包含多个文档的mongodb集合。 我想搜索所有文档,并返回'foo'记录的每个文档实例
示例集合:
Object 1: [_id] => MongoId Object ( [$id] => 551993579285313235ebd120 ) [snaps] => Array ( [0] => ["84062","3","","0-250000","1"] [1] => ["84062","4","","0-350000","1"] ) [zip] => 84057 Object 2: [_id] => MongoId Object ( [$id] => 55198dfc928531ea36ebd11f ) [zip] => testz Object 3: [_id] => MongoId Object ( [$id] => 56a1594e9285319a0a22e15c ) [snaps] => Array ( [0] => ["84057","3","","0-250000","1"] [1] => ["84020","4","","0-350000","1"] ) [zip] => 84062我想返回对象1和3,但只返回“快照”记录及其值
当前代码:
try { $conn = new Mongo('localhost'); $db = $conn->remo_db1; $c = $db->eudata; $cursor = $c->find(array('snaps')); foreach($cursor as $obj) { echo $obj['snaps']; } // disconnect from server $conn->close(); } catch (MongoConnectionException $e) { die('Error connecting to MongoDB server'); } catch (MongoException $e) { die('Error: ' . $e->getMessage()); }I have a mongodb collection with multiple documents. I want to search all the documents, and return each documents instance of a record for 'foo'
Example Collection:
Object 1: [_id] => MongoId Object ( [$id] => 551993579285313235ebd120 ) [snaps] => Array ( [0] => ["84062","3","","0-250000","1"] [1] => ["84062","4","","0-350000","1"] ) [zip] => 84057 Object 2: [_id] => MongoId Object ( [$id] => 55198dfc928531ea36ebd11f ) [zip] => testz Object 3: [_id] => MongoId Object ( [$id] => 56a1594e9285319a0a22e15c ) [snaps] => Array ( [0] => ["84057","3","","0-250000","1"] [1] => ["84020","4","","0-350000","1"] ) [zip] => 84062I want to return object 1, and 3, but only the "snaps" records, and their values
Current code:
try { $conn = new Mongo('localhost'); $db = $conn->remo_db1; $c = $db->eudata; $cursor = $c->find(array('snaps')); foreach($cursor as $obj) { echo $obj['snaps']; } // disconnect from server $conn->close(); } catch (MongoConnectionException $e) { die('Error connecting to MongoDB server'); } catch (MongoException $e) { die('Error: ' . $e->getMessage()); }最满意答案
以下内容将返回集合中具有非空“快照”记录及其值的所有对象:
$ cursor = $ c-> find(array('snaps'=> array('$ nin'=> array('','',null))),array('snaps'=> true));
第一个参数是查询。 它返回集合中包含非空“捕捉”值的所有对象。
第二个参数使得只返回'snaps'字段。 (如果要返回所有字段,只需删除第二个参数)。
希望能帮助到你!
The following will return all objects in the collection with non-empty 'snaps' records and their values:
$cursor = $c->find( array('snaps'=>array('$nin' => array(' ','',null))), array('snaps'=>true));
The first parameter is the query. It returns all objects in the collection that contain non-empty 'snaps' values.
The second parameter makes it so only the 'snaps' field gets returned. (If you want to return all the fields, simply remove the second parameter).
Hope it helps!
更多推荐
发布评论