所以这就是我的数据库现在的样子:
{
_id": "r8uoPSvJY36nHgCK9",
"name": "Running",
"category": "leisure",
"duration": "2",
"createdAt": "2/10 16:42:17",
"skills": {
"creativity": 6,
"analytics": 3,
"fitness": 7,
"research": 4,
"communication": 4,
"problemSolving": 3,
"timeManagement": 7,
"leadership": 3,
"selfMotivation": 3,
"teamwork": 4
},
"started": "false",
"finished": "false"
}
如何查询集合以获取创意字段的值并将其存储在变量中?我尝试过类似的东西:
tasks.find({'skills.creativity': this._id});
但它似乎不起作用。
答案 0 :(得分:2)
.find()
会返回光标 - 即所有匹配的记录,而不仅仅是您要查找的密钥。
如果您正在为单个记录和寻找创意字段,假设您试图通过_id
而不是{{1}的值来查找文档} field(就像@Styx指出的那样愚蠢)然后:
skills.creativity
如果您希望获得所有匹配记录的创意字段,那么:
const creativity = tasks.findOne(this._id).skills.creativity;
其中const creativityArray = tasks.find(query).map((e) => e.skills.creativity);
定义了您要查找的文档集。