php - 在 MongoDB PHP 驱动程序中使用数字字段名称

标签 php mongodb mongodb-php

你能告诉我是否可以在 mongodb 中使用数字字段名称,像这样:{"1": 'value1', "2": 'value2', "3": 55}。 看起来我可以使用 mongodb 命令行输入此类数据,但是当我尝试使用 php 编写此类数据时遇到问题,得到 消息:字段名称必须是字符串错误。

我在这里找到了有关 mongodb 中集合命名的信息 http://www.mongodb.org/display/DOCS/Collections ,但我没有找到有关字段名称命名的信息。 谢谢。

我在 php 中为数组试过这个:

$elements[1] = 1;
$index = "2";
settype($index, "string");
$elements[$index] = 2;
$elements["3"] = 3;
var_dump($elements);

它显示:

array
  1 => int 1
  2 => int 2
  3 => int 3

我说的错误是:

发生错误 应用程序错误 异常信息:

消息:字段名称必须是字符串 堆栈跟踪:

#0 C:\library\Shanty\Mongo\Collection.php(376): MongoCollection->find(Array, Array)
#1 C:\git_reps\mailable\application\models\Subscriber1.php(191): Shanty_Mongo_Collection::all(Array, Array)
#2 C:\git_reps\mailable\application\models\Subscriber1.php(203): Model_Subscriber1::getCursor(Array, Array, Array)
#3 C:\git_reps\mailable\application\controllers\ListsController.php(639): Model_Subscriber1::getPaginator(Array, Array, Array)
#4 C:\library\Zend\Controller\Action.php(513): ListsController->view1Action()
#5 C:\library\Zend\Controller\Dispatcher\Standard.php(295): Zend_Controller_Action->dispatch('view1Action')
#6 C:\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#7 C:\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#8 C:\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#9 C:\git_reps\mailable\public\index.php(25): Zend_Application->run()
#10 {main}  

Request Parameters:

array (
  'controller' => 'lists',
  'action' => 'view1',
  'module' => 'default',
  'id' => '52',
)  

当我尝试获取类似“1”的 mongodb cursuro 设置字段时,就会发生这种情况。

最佳答案

我的猜测是,当您将数字用作字符串时,PHP 会进行某种自动转换。尝试使用 settype ( http://php.net/manual/en/function.settype.php ) 以确保它被设置为字符串而不是转换为整数,看看这是否允许您具有与 MongoDB shell 相同的行为。

关于php - 在 MongoDB PHP 驱动程序中使用数字字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9479895/

相关文章:

php - MongoDB PHP : Reading from Slaves and setting persistent connections with a heavy read environment

php - 如何在 PHP 中正确创建自定义函数?

php - 使用 cURL 发送文件

php - preg_replace 的贪婪度

java - MongoDB - 如何在不定义键的情况下访问值字段

php - 如何在 MongoDB 中交叉引用数据

PHP PDO,插入查询后返回值对象

javascript - Mongoose 有条件更新文档

node.js - Mongodb使用过滤器在子文档中获取记录

php - 从具有相同文档结构(MongoDB 和 PHP)的多个集合中查询(查找多个)文档