【发布时间】:2023-04-01 02:55:01
【问题描述】:
我有两个架构,称为 Fruit 和 Person,它们的集合分别是 fruits 和 people。它们都属于名为 fruitsDB 的数据库。
水果模式:
const fruitSchema = new mongoose.Schema({
name: String,
score: Number,
review: String
});
const Fruit = mongoose.model('Fruit', fruitSchema);
人物架构:
const personSchema = new mongoose.Schema({
name: String,
age: Number,
favouriteFruit: fruitSchema //creating a relationship with the fruitschema
});
const Person = mongoose.model('Person', personSchema);
我已经将一些文档插入到 fruits 集合中,它是这样的:
{ "_id" : ObjectId("5f0ef3efcb6ec717ecda8049"), "name" : "Apple", "score" : 8, "review" : "Pretty solid as a fruit.", "__v" : 0 }
{ "_id" : ObjectId("5f0efa8ee37b6309d8d968fe"), "name" : "Kiwi", "score" : 10, "review" : "The best fruit!", "__v" : 0 }
{ "_id" : ObjectId("5f0efa8ee37b6309d8d968ff"), "name" : "Orange", "score" : 4, "review" : "Too sour for me!", "__v" : 0 }
{ "_id" : ObjectId("5f0efa8ee37b6309d8d96900"), "name" : "Banana", "score" : 7, "review" : "It's nice", "__v" : 0 }
{ "_id" : ObjectId("5f11bc01574df316f4072a46"), "name" : "Pineapple", "score" : 8, "review" : "Great fruit!", "__v" : 0 }
这就是 people 集合的样子:
{
"_id" : ObjectId("5f11b3e1be240f0c50ca3b26"),
"name" : "John",
"age" : 37,
"__v" : 0
}
{
"_id" : ObjectId("5f11b62c2ae86609ece9287f"),
"name" : "Amy",
"age" : 12,
"__v" : 0
}
如果“John”有最喜欢的水果,我想在“John”字段的“fruits”集合中嵌入一个“fruit”文档(例如:Kiwi)作为favouriteFruit 字段。像这样:
{
"_id" : ObjectId("5f11b3e1be240f0c50ca3b26"),
"name" : "John",
"age" : 37,
"favouriteFruit": {
"_id" : ObjectId("5f0efa8ee37b6309d8d968fe"),
"name" : "Kiwi",
"score" : 10,
"review" : "The best fruit!",
"__v" : 0
},
"__v" : 0
}
如何在猫鼬中做到这一点?如何更新“John”文档以嵌入水果集合中的现有文档“Kiwi”?
【问题讨论】:
-
有人请帮忙!
标签: javascript node.js mongodb mongoose