我是Mongoose和Typescript的新手,正在尝试为mongoDB的现有集合创建模式。字段之一是一个对象,其中将存在具有不同属性(键值对)的10种不同类型的对象中的任何一种。我不确定如何声明架构数据类型。
我尝试使用Schema.Types.Mixed将字段类型声明为Mixed,这导致在使用Express Server运行时抛出错误。错误如下....
在严格模式下,对象文字不能具有多个具有相同名称的属性。
而且它找不到字段名称本身。
我有一些属性/键值对,即ID,在字段“数据”中有Project。我需要检查项目是否与“ / DeptName / TeamName”之类的东西匹配,然后需要检索集合中存在的所有文档。
import * as mongoose from "mongoose";
const Schema = mongoose.Schema;
export const ContactSchema = new Schema(
{
id: {
type: Schema.Types.ObjectId
},
itemId: {
type: String
},
data: {
type: Schema.Types.Mixed
}
},
{ strict: false }
);
public getContacts(req: Request, res: Response) {
Contact.find({ data: req.params.itemId }, (err, contact) => {
if (err) {
res.send("ERROR : " + err);
}
res.json("DATA : " + contact);
});
}
在运行Express Server时,抛出一个错误,提示对象文字在严格模式下不能具有相同名称的多个属性。而且,它找不到字段“数据”。与“ id”和“ itemId”搜索一样,它工作正常。
我尝试搜索其他文章,但未找到合适的解决方案。有人请提供一些输入。
预期:一些文档列表
收到错误消息:在严格模式下,对象文字不能具有相同名称的多个属性。