Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问mongoDB集合中特定文档的特定属性?_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 如何访问mongoDB集合中特定文档的特定属性?

Javascript 如何访问mongoDB集合中特定文档的特定属性?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,总而言之,我正在处理两个集合-“usercollection”和“groupcollection”,我希望将用户与组关联起来。我不想拥有所有用户文档的2个副本,因此我要为每个用户提供一个唯一的ID属性,用于将特定用户与特定组关联。这都是在本地主机Web服务器上运行的,因此我从一个html页面获取输入,其中包含一个表单,您可以在其中输入“username”和“groupname”。我尝试使用.distinct()函数,查询为“username”,目标字段/属性为“uid” // Set o

总而言之,我正在处理两个集合-“usercollection”和“groupcollection”,我希望将用户与组关联起来。我不想拥有所有用户文档的2个副本,因此我要为每个用户提供一个唯一的ID属性,用于将特定用户与特定组关联。这都是在本地主机Web服务器上运行的,因此我从一个html页面获取输入,其中包含一个表单,您可以在其中输入“username”和“groupname”。我尝试使用.distinct()函数,查询为“username”,目标字段/属性为“uid”

    // Set our internal DB variable
    var db = req.db;

    // Get our form values. These rely on the "name" attributes
    var userName = req.body.username;

    // Set query and options for searching usercollection
    var query = {"username" : userName};
    const fieldName = "uid";

    // Set our collections
    var users = db.get('usercollection');

    // Get UID corresponding to username
    var uidToAdd = users.distinct(fieldName, query);

这就是我所尝试的(去掉了一些不相关的行),但它只是返回了一个空对象,所以我有点不知所措。另外,我还是nodejs/javascript/mongoDB的初学者,所以答案信息越多越好!当我在mongo shell中执行相同的代码时,我可以得到“uid”属性的实际值,因此我真的不知道出了什么问题

我不确定我是否在跟踪您。但如果我理解正确,如果您想在“usercollection”和“groupcollection”之间建立关系,您只需创建这两个集合,“usercollection”中的每个用户都应该有一个带有“groupid”作为引用的字段。通过这种方式,您可以轻松访问“groupcollection

下面是一个使用猫鼬的例子

用户模型中

...

groupId: {
 type: mongoose.Schema.Types.ObjectID
 ref: "Group"
}

...
稍后,您还可以使用“填充””获取“组””信息

...

let data = await User.findById(id).populate('groupId');

...