更新Mongodb文档并添加字段

时间:2014-01-03 21:00:49

标签: mongodb symfony doctrine-orm

我正在尝试更新mongodb文档并添加一些字段但是徒劳无功 我的初始文档看起来像这样

 {"_id" : ObjectId("52c720e3211b6f0a258b4567"),
 "email" : "someemail@msn.com",
 "date" : ISODate("2014-01-03T20:43:15Z"),
 "number" : 0, "accessToken" : "CAAIc2knVS3oBAAWRw5iqTK6mo6BEjwJJtT8PRZBUfhLayyelcXDZBO0pTWULGNPOZAxb9ZAwWk1oQghdcqxRr5yycMvkSokU7vYn3OWQJVWFuxbHC6L6F3NvLAYCrkoPvnoZAmNZBkkvG4qXFQT46hyPrDSc7GTZA1IpxVrQHEGbrwZDZD" }

更新后,我想在文档中添加两个字段:用户名和密码。 我查看过文档,但它似乎没有对此事进行处理。 非常感谢

2 个答案:

答案 0 :(得分:4)

如果您正在使用学说ODM文档对象:

$document->setUsername($username); // $document is your document instance
$document->setPassword($password);
$dm->flush($document); // $dm : document manager

如果您想要一个独立的查询(通过QueryBuilder):

$dm->createQueryBuilder('YourBundle:YourDocumentClass')
    ->field('_id')->Equals("52c720e3211b6f0a258b4567")
    ->update()
    ->field('username')->set($username)
    ->field('password')->set($password)
    ->getQuery()->execute();

此处有更多信息和查询构建示例:

http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/query-builder-api.html

答案 1 :(得分:1)

在mongo shell中你可以这样做:

db.myusers.update(
    {_id: ObjectId("52c720e3211b6f0a258b4567")}, // identify document
    {$set: {username: 'scott', password: 'tiger'} })

这使得其他领域保持不变。