Mongodb哈希类型键在数​​组中返回'null'值

时间:2014-01-30 12:08:38

标签: php mongodb symfony hash doctrine-orm

有人可以帮忙吗?我正在使用doctrine_mongodb,我正在尝试获取文档中所有键的值。我得到类型为integer,string和boolean的字段的值,但我的hash类型的字段返回值'null'

以下是我如何定义/documents/Scripts.php类脚本中的一个哈希字段

/**
 * @MongoDB\Document(collection="scripts")
 */
class Scripts
{
    /**
     * @MongoDB\Id
     */
    public $id;
   /** 
     * @MongoDB\Hash
     */
    public $properties;

由于

3 个答案:

答案 0 :(得分:1)

我有同样的问题。对我来说,Hydrator是用旧值缓存的,并没有引用我添加的任何新的。

app/console cache:clear app/console doctrine:mongodb:generate:documents BUNDLENAME

解决了我的问题。

答案 1 :(得分:0)

现在修复。我使用php类型数组在“/var/www/Symfony/app/cache/dev/doctrine/odm/mongodb/Hydrators/AtlasMpBundleDocumentScriptsHydrator.php”中手动创建了哈希类型字段。打开文件时很容易理解。

希望这有助于某人:)

答案 2 :(得分:0)

ODM项目中的功能测试GH453Test.php包括使用哈希映射字段的示例。如果在模型水合后看到null属性,那是因为该字段不存在或者其值在MongoDB返回的文档中为null。转换逻辑在HashType::convertToPHPValue()中非常简单。