标签: mongodb-php

Mongodb php查询,在数组中搜索?

我正在寻找一种方法来搜索具有以下结构的"answers"文档数组中的关键字(例如"Henrik")

Array
(
[_id] => MongoId Object
    (
        [$id] => 4eeedd9545c717620a000007
    )

[formId] => 6
[respId] => 4eeedd95c93228
[dateCreated] => 2011-10-14 07:45
[answers] => Array
    (
        [field1] => Henrik
        [field6] => myemail@domain.com
        [field7] => my city address
    )

)
Run Code Online (Sandbox Code Playgroud)

我在这个项目上使用PHP工作,当然这样查询:

$answers = $collection->find( array('formId' => 6, 'answers.field1'=> 'Henrik' ) );
Run Code Online (Sandbox Code Playgroud)

我想要做的是搜索没有答案数组的特定键,像这样

$answers = $collection->find( array('formId' => 6, 'answers'=> 'Henrik' ) );
Run Code Online (Sandbox Code Playgroud)

是否可以进行此类查询?如果这是转贴,我很抱歉.我无法在此处或在Google上找到任何关于此的示例.

php mongodb mongodb-php

3
推荐指数
2
解决办法
1万
查看次数

在PHP的MongoDB查询中"和"在"或"中

mongodb和or combo类似于此,除了我使用php并获取[MongoCursorException] $或数组必须包含对象.

另请阅读http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or

如何通过PHP在MongoDB中的"OR"内嵌入"AND"? 这是我的条件参数(通过var_export):

'group_id' => '4eec13b5-aeb4-48ee-9619-449125af0e18',
'$or' => 
array (
  0 => 
  array (
    0 => 
    array (
      'active' => 0,
      'user_id' => '4eea7b76-5d34-4036-8344-120c0aaa1bdc',
    ),
  ),
  1 => 
  array (
    1 => 
    array (
      'active' => 1,
    ),
  ),
)
Run Code Online (Sandbox Code Playgroud)

需要列组ID并且处于活动状态的帖子列表(属于用户且不活动).

在SQL中非常容易,但无论我通过PHP查询在MongoDB中尝试哪种变化,都会得到$或错误.这可能吗?是$并要求?

php mongodb mongodb-php

2
推荐指数
1
解决办法
2839
查看次数

无法捕获MongoConnectionException

当mongod没有运行时,我在尝试连接到mongodb服务器时收到MongoConnectionException.不幸的是,我无法捕获异常.有人能告诉我以下代码有什么问题吗?

try {
    $conn = new \Mongo('localhost');
    self::$mdb = $conn->filestore;
} catch(MongoConnectionException $e) {
    trigger_error('Mongodb not available', E_USER_ERROR);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码因异常而失败

致命错误:未捕获的异常'MongoConnectionException',消息'Invalid argument'

我尝试使用MongoConnectionException和Exception类捕获异常,但两者都不起作用.

php mongodb mongodb-php

2
推荐指数
1
解决办法
1802
查看次数

查询数组中的部分对象 - MongoDB

我有一个简单的结构化文档,如下所示:

"people" : [
    {
        "id" : "6241863",
        "amount" : 5
    }
],
Run Code Online (Sandbox Code Playgroud)

人们可以包含多个元素.我设法让这个工作:

db.village.findOne({"people": {"$in": [{"id": "6241863", "amount": 5}]}})
Run Code Online (Sandbox Code Playgroud)

但我想忽略金额并搜索包含ID为6241863且任何金额的人的任何文件.

mongodb mongodb-php

2
推荐指数
1
解决办法
1641
查看次数

无法在XAMPP Windows上安装MongoDB PHP驱动程序

我正在使用Windows操作系统(64位)并运行XAMPP(PHP 5.4.7).我尝试安装PHP MongoDB驱动程序,但它没有反映在phpinfo()页面上.

我按照列出的相同步骤操作:

  1. 我从https://github.com/mongodb/mongo-php-driver/downloads下载了php_mongo-1.3.2RC1.zip(最新的一个)
  2. 我解压缩文件夹并复制php_mongo-1.3.1-5.4-vc9.dll文件并粘贴C://XAMPP/php/ext/.我的PHP扩展版本说API20100525,TS,VC9
  3. 我打开php.ini文件,然后插入;extension=php_mongo-1.3.1-5.4-vc9.dll最后一行.

然后我看了一下phpinfo()页面以及我试过的

echo extension_loaded("mongo") ? "loaded\n" : "not loaded\n"; 
Run Code Online (Sandbox Code Playgroud)

它说它没有加载.

php xampp mongodb mongodb-php

2
推荐指数
1
解决办法
9091
查看次数

在 AWS Elastic Beanstalk 上安装 php mongo 驱动程序

我正在尝试在 Elastic Beanstalk 上部署一个 php 应用程序。除了我打电话给 mongo 驱动程序外,一切都正常。

我尝试安装它遵循以下步骤(不成功):

  1. SSH 到 Elastic Beanstalk 实例。
  2. sudo yum install php-devel (用于 phpize)
  3. sudo pecl install mongo
  4. 按照说明尝试命令:sudo echo "extension=mongo.so" >> /etc/php.ini失败。错误信息是:

    -bash: /etc/php.ini: Permission denied

我会以正确的方式解决这个问题吗?

php mongodb-php amazon-elastic-beanstalk

2
推荐指数
2
解决办法
4298
查看次数

在嵌套字段上创建索引

我有一个 MongoDB 文档,其结构类似于以下结构。有大量这些文档,其中有数千人,所以我想通过在 people.#.search_columns.surname 和 people.#.search_columns.givenname 上放置索引来加快速度。如何在 MongoDB 中执行此操作?谢谢你的帮助。

[_id] => MongoId Object (
    [$id] => 53b1b1ab72f4f852140dbdc9
)
[name] => People From 1921
[people] => Array (
    [0] => Array (
        [name] => Barada, Valentine
        [search_columns] => Array (
            [surname] => Array (
                [0] => Mardan,
                [1] => Barada
            )
            [givenname] => Array (
                [0] => Valentine
            )
        )
    )
    [1] => Array (
        [name] => Barsaloux, Nicholas
        [search_columns] => Array (
            [surname] => Array (
                [1] => Barsaloux
            ) …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-php

2
推荐指数
1
解决办法
3842
查看次数

本地字段和外国字段不工作的查找管道内的项目

我写了下面的代码行来获取查找中的一些特定字段,例如

       $pipeline = array(
            array(
                '$match' => $query
            ),
            array(
                '$lookup' => array(
                    'from' => 'studentTbl',
                    'localField' => '_id',
                    'foreignField' => 'activity_details.activityId',
                     'pipeline' => [
                        ['$project' => [ '_id' =>  1.0, 'activity_details' => 1.0] ],
                     ],   
                    'as' => 'studentsOfActivities'
                )
            ),
           ....
           ....
        );

     return $this->db->activitiesTbl->aggregate($pipeline)->toArray();
Run Code Online (Sandbox Code Playgroud)

基本上 studentTbl 有许多字段和嵌入的文档。在上面的代码中,我首先使用外部和本地字段通过查找获取,然后确定哪些字段应该投影到管道内。

上面的代码不起作用...请帮忙!!!

mongodb mongodb-php mongodb-query aggregation-framework php-mongodb

2
推荐指数
1
解决办法
3716
查看次数

Mongodb嵌套数组搜索

文档结构示例是:

{
   "dob": "12-13-2001",
   "name": "Kam",

   "visits": {
     "0": {
       "service_date": "12-5-2011",
       "payment": "40",
       "chk_number": "1234455",  
    },
     "1": {
       "service_date": "12-15-2011",
       "payment": "45",
       "chk_number": "3461234",  
    },
     "2": {
       "service_date": "12-25-2011",
       "payment": "25",
       "chk_number": "9821234",  
    } 
  } 
}


{
   "dob": "10-01-1998",
   "name": "Sam",

   "visits": {
     "0": {
       "service_date": "12-5-2011",
       "payment": "30",
       "chk_number": "86786464",  
    },
     "1": {
       "service_date": "12-15-2011",
       "payment": "35",
       "chk_number": "45643461234",  
    },
     "2": {
       "service_date": "12-25-2011",
       "payment": "20",
       "chk_number": "4569821234",  
    } 
  } 
}
Run Code Online (Sandbox Code Playgroud)

在PHP中,我想列出支付小于"30"的所有"访问"信息(和相应的"名称").

我只想打印"付款"<"30"而非其他人的访问.这样的查询是否可行,或者我是否必须首先使用搜索获取整个文档,然后使用PHP来选择此类访问?

php search mongodb mongodb-php

1
推荐指数
1
解决办法
1万
查看次数

计算给定记录的跳过值以进行分页

我正在尝试使用php驱动程序计算mongo db集合中给定记录的跳过值。因此,获取给定记录,找出整个集合中该记录的索引。这可能吗?

目前,我正在选择所有记录,并手动对结果数组进行索引。

php mongodb mongodb-php mongodb-query

1
推荐指数
1
解决办法
425
查看次数