我有一组文档,每个文档都包含一个子文档数组.每个子文档都有一个时间值.我试图看看我是否可以根据子文档中的时间返回子文档.
我知道我可以使用$ slice检索子文档,但$ slice只给我一个特定的索引或范围和偏移量.
示例时间!
文件是这样的....
{
id: 1234,
type: 'a',
subs: [
{ time: 123001, val: 'a' },
{ time: 123002, val: 'b' },
{ time: 123003, val: 'c' }
]
}
Run Code Online (Sandbox Code Playgroud)
如果我使用find({},{subs:{$ slice:[2,1]}}进行查询,我会得到以下内容:
{ id: 1234, type: 'a', subs: [{ time: 123002, val: 'b' }]}
Run Code Online (Sandbox Code Playgroud)
我想检索该记录,例如不基于偏移量,而是基于123002时间值.
可能?
走!
我有这样的东西。
具有多个座位中一个座位的Car类。座椅有一个子类LeatherSeat。
public class Car {
private Seat seat;
...
@ManyToOne(fetch = FetchType.LAZY)
public Seat getSeat() {
return seat;
}
...
}
@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Seat {
private String id;
private String color;
}
@Entity
public class LeatherSeat extends Seat {
private String leatherType;
}
Run Code Online (Sandbox Code Playgroud)
当我创建自己的汽车并将我的汽车座椅设为LeatherSeat时,它会将所有正确保存在数据库中。当我想要拿车(使用条件或查询列表)并且阅读getSeat()时,Seat始终只是一个席位,而不是LeatherSeat。我无法投射(例外),而且看来必须通过ID手动获取LeatherSeat。
这是使用JOINED继承类型的限制,还是我缺少某些内容。我如何获得真皮座椅的座位?
我试图确定是否有可能,仅使用sql for postgres,以给定的间隔选择一系列时间排序记录.
假设我有60条记录,在给定的一小时内每分钟有一条记录.我想以5分钟的间隔为那个小时选择记录.结果行应该是12个记录,每个记录相隔5分钟.
目前,这是通过选择全部记录然后循环结果并以给定间隔拉出记录来完成的.我试图看看我是否可以在sql中执行此操作,因为我们的数据库很大,我们可能正在处理成千上万的记录.
有什么想法吗?