请注意:我尽量不编写自定义查询,以避免样板代码。但是,一些自定义查询应该很好。
我有两种设计:
第一种使用动态字段(即地图)。语义更好,但使用spring-data-mongoDB查询/更新似乎更难。
{
deviceId: "12345",
instanceTypeMap: {
"type1": {
moduleMap: {
"1": {field1: "value",field2: "value"},
"2": {field1: "value",field2: "value"}
}
},
"type2": {
moduleMap: {
"30": {fielda: "value",fieldb: "value"},
"45": {fielda: "value",fieldb: "value"}
}
}
}
{
deviceId: "12345",
allInstances: [
{
type: 1,
modules: [
{
id: 1,
field1: "value",
field2: "value"
},
{
id: 2,
field1: "value",
field2: "value"
}
]
},
{
type: 2,
modules: [
{
id: 30,
fielda: "value",
fieldb: "value"
},
{
id: 45,
fielda: "value",
fieldb: "value"
}
]
}
]
}
我倾向于使用数组。是否使用数组而不是带有spring-data-mongoDB的动态字段更好。我在网上做了一些搜索,发现人们提到在Spring-Data-MongoDB中查询键(即在map中)不那么容易。那是正确的说法吗?我错过什么了吗?提前谢谢你。
我最终得到了如下的设计。我对每个文档使用一个设备实例类型。因为在某些场景中,更新是在相同实例类型的许多模块上完成的。可以将这些更新聚合为一个数据库更新。为了查询的目的,还添加了冗余的“moduleid”字段。
{
deviceId: "12345",
instanceTypeId: "type1",
moduleMap: {
"1": {
moduleId: "1",
field1: "value",
field2: "value"
},
"2": {
moduleId: "2",
field1: "value",
field2: "value"
}
}
}
现在,我可以使用Spring-Data-MongoDB的查询:
findByDeviceId("12345");
findByDeviceIdAndInstanceTypeId("12345","type1");
findByDeviceIdAndInstanceTypeIdAndModuleMapModuleId("12345","type1","1");
我正在尝试使用Spring Data mongodb更新mongodb中嵌入文档中的数组字段。 我想在mongodb集合中更新/插入的文档结构如下所示。 可以有更多这样的文档基于每个类型的部门,如“销售”,“市场营销”等。 即使这样做有效,我也不确定在Spring Data MongoDB中实现相同的功能是否有类似的支持。 另外,我的另一个查询是,如果我想为多个部门添加/更新员工,比如“Accou
我的要求是在域对象中只有很少的自定义字段。这些字段可能因客户端而异。 我们使用Spring Data JPA来执行查找器。Spring数据隐式地为域的静态字段提供查找器,还可以处理对象图中字段的查找器。 } 我想重写QueryLookupStrategy,并在PartTreeJpaQuery的行上创建我的CustomJpaQuery来实现它。有没有更好的办法?spring data jpa是否提供
我正在我的java应用程序中使用spring data mongodb框架来将我的应用程序数据持久化在mongodb中。在我的java模型类中,我有两个字段。
问题内容: 我试图使用Spring Data MongoDB 3.6-rc4执行聚合操作。 但是在运行查询时出现以下错误 提前致谢!! 问题答案: MongoDB在3.6中更改了聚合命令的工作方式。聚合现在需要一个游标。我们改编了Spring Data MongoDB 2.1, 但没有改编以前的版本。 聚合必须通过集合的方法来调用,而不是直接调用命令。这也是我们没有回溯变更的原因。不再被调用,我们
我已经实现了Serializable、实现了hashCode和equals。 我在MongoDB文档类中使用自定义键类,如下所示。 我可以使用spring data mongodb将文档保存到mongodb中。 我首先使用的标准如下。 根据上述标准,我然后执行一个update状态, 但是,我的更新失败,出现错误,
我使用的是Spring boot 1.4.x分支和Spring Data MongoDB。 当我启动应用程序时,我会出现以下错误: 你知道吗?