Php 为什么我在mongo上的嵌入文档是重复的?
为什么每个人, 我是mongoDB的新手,我正在使用symfony2和mongoDB进行一个项目 我有一个文件“国家”(Pays)和“城市”(Ville)。城市被嵌入到乡村文档中。 但是,我注意到,当我在country上创建一个嵌入式文档“City”时,City是重复的,下面是我的代码。 符合吗 Pays.phpPhp 为什么我在mongo上的嵌入文档是重复的?,php,mongodb,symfony,Php,Mongodb,Symfony,为什么每个人, 我是mongoDB的新手,我正在使用symfony2和mongoDB进行一个项目 我有一个文件“国家”(Pays)和“城市”(Ville)。城市被嵌入到乡村文档中。 但是,我注意到,当我在country上创建一个嵌入式文档“City”时,City是重复的,下面是我的代码。 符合吗 Pays.php <?php // src/Rsi/UserBundle/Document/Pays.php namespace Rsi\UserBundle\Document; use Do
<?php
// src/Rsi/UserBundle/Document/Pays.php
namespace Rsi\UserBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document(repositoryClass="Rsi\UserBundle\Repository\PaysRepository")
*/
class Pays
{
/**
* @MongoDB\Id(strategy="auto")
*/
protected $id;
/**
* @MongoDB\String
*/
private $nom;
/**
* @MongoDB\EmbedMany(targetDocument="Ville")
*/
private $villes = array();
public function __construct()
{
$this->villes = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Get id
*
* @return id $id
*/
public function getId()
{
return $this->id;
}
/**
* Set nom
*
* @param string $nom
* @return self
*/
public function setNom($nom)
{
$this->nom = $nom;
return $this;
}
/**
* Get nom
*
* @return string $nom
*/
public function getNom()
{
return $this->nom;
}
/**
* Add ville
*
* @param Rsi\UserBundle\Document\Ville $ville
*/
public function addVille(\Rsi\UserBundle\Document\Ville $ville)
{
$this->villes[] = $ville;
}
/**
* Remove ville
*
* @param Rsi\UserBundle\Document\Ville $ville
*/
public function removeVille(\Rsi\UserBundle\Document\Ville $ville)
{
$this->villes->removeElement($ville);
}
/**
* Get villes
*
* @return \Doctrine\Common\Collections\Collection $villes
*/
public function getVilles()
{
return $this->villes;
}
}
当我第一次执行控制器的操作时,我获得:
{
"_id": ObjectID("55f548582bd671260b8b456a"),
"nom": "France",
"code": "fr",
"villes": [
{
"_id": ObjectID("55f548582bd671260b8b456b"),
"nom": "Lille"
}
]
}
但是,当我重新执行该操作,并希望在一个已经存在的国家中添加一个新城市时,我得到以下信息:
{
"_id": ObjectID("55f548582bd671260b8b456a"),
"nom": "France",
"code": "fr",
"villes": [
{
"_id": ObjectID("55f548582bd671260b8b456b"),
"nom": "Lille"
},
{
"nom": "Paris"
},
{
"_id": ObjectID("55f548e52bd671270b8b456a"),
"nom": "Paris"
},
{
"nom": "Nice"
},
{
"_id": ObjectID("55f549152bd67162098b4569"),
"nom": "Nice"
}
]
}
城市被复制请告诉我怎么了,为什么城市被复制
{
"_id": ObjectID("55f548582bd671260b8b456a"),
"nom": "France",
"code": "fr",
"villes": [
{
"_id": ObjectID("55f548582bd671260b8b456b"),
"nom": "Lille"
}
]
}
{
"_id": ObjectID("55f548582bd671260b8b456a"),
"nom": "France",
"code": "fr",
"villes": [
{
"_id": ObjectID("55f548582bd671260b8b456b"),
"nom": "Lille"
},
{
"nom": "Paris"
},
{
"_id": ObjectID("55f548e52bd671270b8b456a"),
"nom": "Paris"
},
{
"nom": "Nice"
},
{
"_id": ObjectID("55f549152bd67162098b4569"),
"nom": "Nice"
}
]
}