使用PHP和Mongo我想更新用户可用性但无法弄明白。如何构建我的集合以便能够引用可用性groups.steve.availability?
以下是我的“群组”集合的结构:
{
"_id": {
"$oid": "524327d536b82c7c5c842f6d"
},
"group_id": "testing",
"password": "test",
"users": [
{
"username": "steve",
"availability": "null"
},
{
"username": "joeb",
"availability": "null"
}
]
}
答案 0 :(得分:1)
如果您想按照建议的方式引用它:groups.steve.availability
,则需要更详细地构建文档。 (我不确定groups
来自哪里。)
此示例会通过将用户名移动到users.steve.availability
字段(users
)的子字段来为您提供users.steve
。
{
"_id": {
"$oid": "524327d536b82c7c5c842f6d"
},
"group_id": "testing",
"password": "test",
"users": {
"steve": {
"availability": "null"
},
"joeb" : {
"availability": "null"
}
}
}
或者,您可以直接在文档上创建字段:
{
"_id": {
"$oid": "524327d536b82c7c5c842f6d"
},
"group_id": "testing",
"password": "test",
"steve": {
"availability": "null"
},
"joeb" : {
"availability": "null"
}
}
这样您就可以使用steve.availability.
如果您正在尝试进行查询,那么最好不要像原来那样离开它:
"users": [
{
"username": "steve",
"availability": "null"
}]
因此,您可以编写类似的查询:
db.groups.find({"users.username" : "steve" })