>我正在尝试更新mongodb文档并添加一些字段,但徒劳无功我的初始文档如下所示
{"_id" : ObjectId("52c720e3211b6f0a258b4567"),
"email" : "someemail@msn.com",
"date" : ISODate("2014-01-03T20:43:15Z"),
"number" : 0, "accessToken" : "CAAIc2knVS3oBAAWRw5iqTK6mo6BEjwJJtT8PRZBUfhLayyelcXDZBO0pTWULGNPOZAxb9ZAwWk1oQghdcqxRr5yycMvkSokU7vYn3OWQJVWFuxbHC6L6F3NvLAYCrkoPvnoZAmNZBkkvG4qXFQT46hyPrDSc7GTZA1IpxVrQHEGbrwZDZD" }
更新后,我想在文档中添加 2 个字段,分别是:用户名和密码。我已经查看了文档,但它似乎没有处理这个问题。多谢
如果您正在使用学说 ODM 文档对象:
$document->setUsername($username); // $document is your document instance
$document->setPassword($password);
$dm->flush($document); // $dm : document manager
如果你想要一个独立的查询(通过查询构建器):
$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
在 mongo shell 中,你可以这样做:
db.myusers.update(
{_id: ObjectId("52c720e3211b6f0a258b4567")}, // identify document
{$set: {username: 'scott', password: 'tiger'} })
这使其他字段保持不变。