当前位置: 首页 > 知识库问答 >
问题:

Spring Data MongoDB:在DB中标记为@索引的参数

常宸
2023-03-14

我有一些麻烦与我的第一个Spring后端为Mongo DB。我创建了一个带有一些属性的组件类。其中之一是零件号,零件号应是唯一的。所以我设置了@Indexed(独特=真实)注释。

应用程序运行良好。但是如果我用postman测试endpoint,那么除了零件号之外,所有属性都会写入Mongo文档。PN始终是empyt。我不明白为什么。如果有人能帮我解决他的问题,我会很高兴的。

这是组件类

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import lombok.Data;

@Data
@Document
public class Component {
    @Id
    private String id;
    private String cType;
    @Indexed(unique = true)
    private String pN;
    private String name;
    private double diameter;
    private double bendradius;
    private double maxLenght;
    private String modelPath;
    private String description;
    private String normOrStandard;
}

这是对路由的post请求示例http://localhost:8080/components

    {

        "PN":"13245"
    }

结果是:

{
    "id": "61c9c23960435c3c0c4d5844",
    "name": null,
    "diameter": 0.0,
    "bendradius": 0.0,
    "maxLenght": 0.0,
    "modelPath": null,
    "description": null,
    "normOrStandard": null,
    "ctype": null,
    "pn": null,
    "_links": {
        "self": {
            "href": "http://localhost:8080/components/61c9c23960435c3c0c4d5844"
        },
        "components": {
            "href": "http://localhost:8080/components"
        }
    }
}

如果所有字段都已填充,也会发生这种情况。

共有1个答案

梁巴英
2023-03-14

尝试使用与组件类中的字段匹配的区分大小写的HTTP参数运行Postman请求:

{
   "pN":"13245"
}

而不是:

{
   "PN":"13245"
}
 类似资料:
  • 问题内容: 我一直在尝试创建代码以生成随机名称。这里是 但是在“ let name”行上,这给了我标题上的错误。有谁知道为什么以及如何解决它? 问题答案: 您应该使用来按索引访问数组 取代这个 有了这个

  • 我使用Lucene3.5和SpanishAnalyzer(它本身使用SpanishStemmer和StandardTokenizer)。 当SpanishAnalyzer用单词(例如)“Claramente”和“Claro”索引文档时,它们都将被索引为“CLAR”。 这种行为对我的需要很有用,今天在查询之前,我使用分析器的+获取搜索词的标记,并根据索引的文档进行搜索。我不是在使用QueryPars

  • 我一直在切换模板工厂函数来使用(和理解)d::f支持右值和移动语义学。我常用的模板类样板工厂函数总是将参数标记为const: 按预期编译。最初,我将MakeMyPair转换为以const形式传递参数,但这不会使用XCode 4.6在我的Mac上编译: 没有用于调用“MakeMyPair\U Forward”候选函数的匹配函数[具有T=int,U=bool]不可行:没有从“int”到“const i

  • 我在尝试在父表(DART\U ORDER)中插入1条记录,在连接到父表(DART\U ODATE)的子表中插入2条记录时遇到问题。这两个表由一对多对一关系链接,如下所示: 当我尝试保存提供完整OrderDAO对象的记录时,会出现以下异常: 原因:java。sql。SQLException:oracle中的列索引无效。jdbc。驾驶员OraclePreparedStatement。oracle上的s

  • 是否可以以某种方式标记属性,以便在发送请求时可以理解在SwaggerUI中应设置哪个字段。 例如,我们有一个支付路由,它具有payment_type属性,可以保存paypal、credit_card、crypto等值。基于该字段,我们需要填充不同的属性,如下所示。 是否有可能以某种方式标记它们,以便将它们分组,例如对于加密加密货币,应该设置wallet_address,而对于银行转帐,应设置快速,

  • 我想在整个Elasticsearch索引上自动应用n-gram标记化。 文档提到最终运行分析以应用标记器,但分析器似乎需要显式字符串输入才能工作。 问题:我如何告诉ES“分析整个索引”(即扫描并标记所有内容)? 上下文:我有一些ES索引,主要来自简单帖子(例如广告、事件、用户配置文件)的MYSQL数据库,但一些索引也是JSON中固定的预定义术语列表(例如200个品牌、400个标签、20个类别等),