Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有Symfony2的MongoDB_Mongodb_Symfony_Odm - Fatal编程技术网

带有Symfony2的MongoDB

带有Symfony2的MongoDB,mongodb,symfony,odm,Mongodb,Symfony,Odm,我必须在城市层面上提出一个自动建议,这样我就可以列出各个国家的地图城市,如USA=>(“纽约”、“达拉斯”、“洛杉矶”…) 我需要的是使用symfony2映射方法将其保存在mongodb中。 我搜索了很多,但没有找到关于mongodb中数组处理的适当帮助或文档 请说明是否有人在这方面有经验 namespace SPTL\UserBundle\Document; use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; /** * @Mo

我必须在城市层面上提出一个自动建议,这样我就可以列出各个国家的地图城市,如
USA=>(“纽约”、“达拉斯”、“洛杉矶”…)

我需要的是使用symfony2映射方法将其保存在mongodb中。 我搜索了很多,但没有找到关于mongodb中数组处理的适当帮助或文档

请说明是否有人在这方面有经验

namespace SPTL\UserBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/**
* @MongoDB\Document
*/
class City {
/**
 * @MongoDB\Id
 */
protected $id;

/**
 * @MongoDB\String
 */
protected $country;

/**
 * @MongoDB\hash
 */
protected $city = array();


/**
 * Get id
 *
 * @return id $id
 */
public function getId()
{
    return $this->id;
}

/**
 * Set country
 *
 * @param string $country
 * @return \City
 */
public function setCountry($country)
{
    $this->country = $country;
    return $this;
}

/**
 * Get country
 *
 * @return string $country
 */
public function getCountry()
{
    return $this->country;
}

/**
 * Set city
 *
 * @param hash $city
 * @return \City
 */
public function setCity($city)
{
    $this->city = $city;
    return $this;
}

/**
 * Get city
 *
 * @return hash $city
 */
public function getCity()
{
    return $this->city;
}
}

插入的用法: 插入的记录: 用于检索的代码:
但是我无法通过上述检索代码获取记录….

如果您需要通过ObjectId类型的id检索城市 您必须从创建对象,并将id作为字符串提供

例如:

    $repository = $this->get('doctrine_mongodb')->getManager()
        ->getRepository('UserBundle:City');

    $cityId = new \MongoId("5252b03f6b0f57394e2fb1b5");
    $city = $repository->find($cityId);

    var_dump($city);
{
 "_id": ObjectId("5252b03f6b0f57394e2fb1b5"),
 "country": "USA",
 "city": {
  "0": "New York",
  "1": "Dallas",
  "2": "Los Angeles"  
  } 
}
$repository = $this->get('doctrine_mongodb')->getManager()
    ->getRepository('UserBundle:City');
$cities = $repository->findBy(array("_id"=>'5252b03f6b0f57394e2fb1b5'));
print_r($cities);
    $repository = $this->get('doctrine_mongodb')->getManager()
        ->getRepository('UserBundle:City');

    $cityId = new \MongoId("5252b03f6b0f57394e2fb1b5");
    $city = $repository->find($cityId);

    var_dump($city);