javascript - PHP/MongoDB 查询协助

标签 javascript php arrays mongodb

我有一个包含多个文档的 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,但只返回“snaps”记录及其值

当前代码:

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());
                }

最佳答案

以下命令将返回集合中具有非空“snaps”记录及其值的所有对象:

$cursor = $c->find( array('snaps'=>array('$nin' => array(' ','',null))), array('snaps'=>true));

第一个参数是查询。它返回集合中包含非空“快照”值的所有对象。

第二个参数使得仅返回“snaps”字段。 (如果要返回所有字段,只需删除第二个参数即可)。

希望对你有帮助!

关于javascript - PHP/MongoDB 查询协助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35097171/

相关文章:

javascript - 如何在 JavaScript 中将 Blob 转换为文件

Javascript用子字符串搜索匹配两个数组

javascript - javascript 移动盒子的自动播放

php - Array_walk 遍历 10000 个项目。可以优化吗?

php - 将数组分解成多维数组(parent->child->sub-child)

java - 为什么 Arrays.fill() 不再在 HashMap.clear() 中使用?

javascript - jquery每个函数获取输入值

php - WordPress - pre_get_posts 代替页面上的 query_posts

Python - 使用数组进行数据处理

javascript - 将按钮的值放入数组中