【发布时间】:2020-07-27 16:17:46
【问题描述】:
这是我的问题,我有两个模式,一个嵌套在另一个数组中。我试图推入数组并保存子文档,但它没有正确保存,我得到一个已保存的对象,但除了它的 _id 之外没有任何字段被保存。我必须先单独保存每个模型吗?这里有什么问题?
这是我的两个架构:
import mongoose from "mongoose";
import {contactSchema} from "./ContactSchema"
export const bigSchema = new mongoose.Schema({
testField: {
type: String,
required: true,
},
contacts: [{ contactSchema }],
}
});
export default mongoose.model("Big", bigSchema);
import mongoose from "mongoose";
export const contactSchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
age: {
type: number,
required: false,
}
});
export default mongoose.model("Contact", contactSchema);
这是我用来推送到联系人数组的代码。
public async saveContact(
testField: string,
name: string,
age: number,
) {
const newContact = new Contact({
name: name,
age: age,
});
console.log(newContact);
return UserContacts.findOneAndUpdate(
{
testField: testField,
},
{ $push: { contacts: newContact } },
{ new: true, upsert: true }
);
}
但是,当我检查我的数据库时,我看到的是这个。有一个 objectId 但不是我期望看到的,它是我的“大”文档中的联系人子文档列表
{
"_id" : ObjectId("XXXX"),
"testField" : "XXXXX",
"contacts" : [
{
"_id" : ObjectId("XXXXX")
}
],
"__v" : 0
}
【问题讨论】:
-
如果有人在看这个问题,我怎样才能让这个问题更清楚
标签: javascript node.js mongodb express mongoose