Php 为什么我在mongo上的嵌入文档是重复的?

Php 为什么我在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

为什么每个人,

我是mongoDB的新手,我正在使用symfony2和mongoDB进行一个项目

我有一个文件“国家”(Pays)和“城市”(Ville)。城市被嵌入到乡村文档中。 但是,我注意到,当我在country上创建一个嵌入式文档“City”时,City是重复的,下面是我的代码。 符合吗

Pays.php

<?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"
    }
]
}