MongoDB查找所有评论

时间:2012-04-30 22:41:59

标签: php mongodb mongodb-php mongodb-query

如果我有几个使用以下结构的文档:

{ 
  "_id" : ObjectId("4f9c6fe033cddec1bea430f2"), 
  "title" : "Product #1",
  "comments" : 
  [
  {
    "comment" : "My comment",  
    "date" : "2012-03-01 00: 00: 00",   
    "name" : "Test Name",   
    "username" : "Test Username"
  },
  {
    "comment" : "My comment",  
    "date" : "2012-03-01 00: 00: 00",   
    "name" : "Test Name 2",   
    "username" : "Test Username 2"
  }
  ]
}

我是否可以找到所有包含reviews.name并更新的文档?例如,我想找到所有带有user.name:test name 2的文档并将其更改为Cassie。那可能吗?如果不是,将评论放在不同的集合中会更好吗?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。你必须使用comments.username找到它,然后comments.$.username注意,因为你要发布到一个数组,你必须告诉mongo使用$ positional operator进入那里