我正在尝试更新mongodb文档并添加一些字段但是徒劳无功 我的初始文档看起来像这样
{"_id" : ObjectId("52c720e3211b6f0a258b4567"),
"email" : "someemail@msn.com",
"date" : ISODate("2014-01-03T20:43:15Z"),
"number" : 0, "accessToken" : "CAAIc2knVS3oBAAWRw5iqTK6mo6BEjwJJtT8PRZBUfhLayyelcXDZBO0pTWULGNPOZAxb9ZAwWk1oQghdcqxRr5yycMvkSokU7vYn3OWQJVWFuxbHC6L6F3NvLAYCrkoPvnoZAmNZBkkvG4qXFQT46hyPrDSc7GTZA1IpxVrQHEGbrwZDZD" }
更新后,我想在文档中添加两个字段:用户名和密码。 我查看过文档,但它似乎没有对此事进行处理。 非常感谢
答案 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();
此处有更多信息和查询构建示例:
答案 1 :(得分:1)
在mongo shell中你可以这样做:
db.myusers.update(
{_id: ObjectId("52c720e3211b6f0a258b4567")}, // identify document
{$set: {username: 'scott', password: 'tiger'} })
这使得其他领域保持不变。