似乎 Mongo 文档结构和使用 MongoDB 身份验证之间可能存在一些混淆。
关于如何为 Mongo 数据库设置用户身份验证的文档在这里:
http ://www.mongodb.org/display/DOCS/Security+and+Authentication
如果 User2 需要对由 User1 创建的集合运行查询,则 User2 必须在该集合所在的数据库中拥有一个帐户,并且必须经过适当的身份验证。
提供的示例文档也有些混乱。最好使用在所有文档中都相同的键名。例如:
{userName:"user1", name:"Marc"},
{userName:"user2", name:"Jeff"},
{userName:"user3", name:"Steve"}
最好是
{user1:"Marc"},
{user2:"Jeff"},
{user3:"Steve"}
在第二个示例中,必须知道用户名(user1、user2 等)才能找出用户的名称。MongoDB 不支持查询中的通配符。
以下文档结构更可取:
{
user: "User2",
objects:[object1,object2,object3]
},
{
user: "User1",
objects:[object1,object2,object3]
}
可以使用以下查询检索 user1 创建的所有对象:
> db.<your collection name>.find({user: "User1"}, {objects:1})
有关 MongoDB 文档结构的更多信息,我建议阅读以下内容:
http://www.mongodb.org/display/DOCS/Schema+Design - 很好地介绍了数据在 MongoDB 中的存储方式,包括示例文档、最佳实践和索引介绍。
希望以上内容能让您在决定收藏模式、创建用户和设置权限方面走上正确的道路。身份验证是 MongoDB 更高级的功能之一,因此在担心身份验证之前,我将首先专注于构建有效的模式并正确组织您的数据。
如果您对这些主题或 MongoDB 相关的任何其他问题有任何其他问题,社区随时为您提供帮助!祝你好运!