gpt4 book ai didi

javascript - Mongoose 忽略对象的一部分,除非定义为 Schema.Types.Mixed

转载 作者:行者123 更新时间:2023-12-02 18:35:32 25 4
gpt4 key购买 nike

抱歉 CoffeeScript 。

用这个把我的头发拔掉。我有一个与此类似的架构:

reviewSchema = Schema
title: String
meta:
author: String
date: String
article: String
tags: [
type: Schema.Types.ObjectId
ref: "Tag"
]
images: [
type: Schema.Types.ObjectId
ref: "Image"
]
attr:
appearance: String
aroma: String
flavor: String
from: String
grade: String
lineage: String
name: String
overall: String
packaging: String
pickupdate: String
price: String
reason: String
story: String
type: String
Review = mongoose.model 'Review', reviewSchema

我还有一些数据,我已将这些数据与相应的数据组装成一些 JSON 文件。当我创建一个新模式时,我会查看该文件并获取 JSON 并通过以下方式创建一个新的评论对象:

thisReview = 新评论 json,最小化:false

如果我在创建“thisReview”之前console.log json,我会发现我的“attr”键已正确填充数据,但是如果我console.log“thisReview”或检查数据库,我不会收到“我的文档的 attr' 键。 “attr”被完全忽略。

我尽可能确保每个 JSON 文件的 JSON.attr 对象都具有架构中的每个键,对于那些不存在的键,使用“”(空)字符串。其他嵌套对象(例如架构的元对象)正在完美填充。

知道发生了什么吗?

额外信息:当我删除 attr 对象中的键/值对并进行分配时: attr:Schema.Types.Mixed

然后所有数据都已成功保存,包括空(“”)字符串。

任何帮助将非常感激。

最佳答案

type attr的属性(property)很可能会让 Mongoose 陷入思考 attr是一个字符串而不是嵌入的对象。对属性使用更明确的定义,如下所示:

attr: 
appearance: String
aroma: String
flavor: String
from: String
grade: String
lineage: String
name: String
overall: String
packaging: String
pickupdate: String
price: String
reason: String
story: String
type:
type: String

关于javascript - Mongoose 忽略对象的一部分,除非定义为 Schema.Types.Mixed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17356578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com