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



总之,我正在处理两个集合-"usercollection"one_answers"groupcollection",我想将用户与组关联起来。我不想拥有所有用户文档的两个副本,所以我为每个用户都有一个唯一的ID属性,我想用它将特定用户与特定组关联起来。这一切都在localhost Web服务器上运行,所以我从一个html页面获得输入,其中有一个表单,您可以在其中输入"username"one_answers"groupname"。我尝试使用.dispinct((函数,查询为"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);

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

我不确定我是否在跟踪你。但如果我理解正确,如果你想在">usercollection"one_answers">groupcollection之间建立关系,你可以简单地创建这两个集合,">1usercollection"中的每个用户都应该有一个以">2groupid'"为引用的字段。通过这种方式,您可以轻松访问">groupcollection"。

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

用户型号中

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

稍后,您还可以使用">populate"来获取">'信息。

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

最新更新