【发布时间】:2021-01-02 12:26:23
【问题描述】:
我有一组文档。我正在使用猫鼬和快递。 每个文档都使用此架构构建:
const userSchema = new Schema({
firstName: { type: String },
lastName: { type: String },
email: { type: String },
books: { type: Object },
});
const User = mongoose.model('User', userSchema);
导出默认用户; 对于对象“books”中的每个文档,我可以有不同的“key:value”对。
例如, 第一份文件:
{
"firstName": "Lucy",
"lastName": "Red",
"email": "lucy.red@mail.com",
"books": {
"Harry Potter" : "horrible",
"Hunger Games" : "beautiful"
}
}
第二份文件:
{
"firstName": "Tom",
"lastName": "Brown",
"email": "tom.brown@mail.com",
"books": {
"The Great Gatsby" : "beautiful",
"Frankenstein" : "horrible"
}
}
我想做的是查询 db 集合,并在一个数组中获取可以在每个“books”对象中找到的所有可能的键。
对于这个例子,我想检索:
["Harry Potter" , "Hunger Games", "The Great Gatsby", "Frankenstein"];
是否存在这样做的方法?非常感谢。
【问题讨论】:
-
作为一个建议,如果你将
books对象放入一个带有子文档的数组中,例如 ``` { title: "Harry Potter", rating: "horrible" } ``` 它将使您的查询更简单
标签: javascript mongodb express mongoose mongodb-query