使用spring data mongo存储库类,我们如何声明一个方法来返回排除了少数字段的文档?Spring数据参考文档显示了“包含”字段机制,但没有显示排除。来自spring 文档的代码:
public interface PersonRepository extends MongoRepository<Person, String>
@Query(value="{ 'firstname' : ?0 }", fields="{ 'firstname' : 1, 'lastname' : 1}")
List<Person> findByThePersonsFirstname(String firstname);
}
Run Code Online (Sandbox Code Playgroud)
我需要一种机制来指定要排除的字段?存储库方法是否支持此功能?
@JsonSerialize
@Document(collection = "fence")
@CompoundIndexes({
@CompoundIndex(name = "loc_groupId_idx",
def = "{ 'loc': 2dsphere, 'groups.groupId': 1 }",
unique = false) })
public class GeofenceMongoVO {
public GeofenceMongoVO() {}
@Id
private String fenceId;
@Field
private Long customerId;
@Field
private String fenceName;
@Field
private Byte type;
Run Code Online (Sandbox Code Playgroud)
这就是我试图确保地理空间字段和子文档(groupId)字段上的复合索引的方式。但不幸的是,这不起作用。有没有一种方法可以通过注释从java代码中确保2dsphere索引?
有没有办法使用spring-data mongo @Query注释来表示下面的查询.
db.users.find({userName: "titogeo"}, {requests: 1, _id:0})
Run Code Online (Sandbox Code Playgroud)
控制台中的上述查询输出是
请求":[{"who":"blahblahblah1","who":"blahblahblah2",
"
what":"REQUEST",
"when":ISODate("2012-09-05T17:52:14.339Z")}] }
我尝试了以下但没有奏效.
@Query("{userName: ?0}, {requests:1, _id:0}")
public Page<AddRequest> getAllFriendRequests(String userName, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)
集合用户拥有User对象和请求是其中包含AddRequest对象的列表.
当我执行上面的方法时,我得到一个空白列表.任何帮助表示赞赏.
还有什么好的参考网站或书籍spring-data-mongo apis?
我有一个用@Document注释的Mongo集合,我希望有可能从String(JSON)中获取Java对象,因为我们将这些类作为String推送到队列中.
Spring-Data-Mongo中有一个方法可以将JSON转换为实际的Document对象吗?
我有一个子文档,它是父文档的数组."设备"
在那个数组中,我有一个属性是Date属性.
我想通过确定的日期找到包含子子文档的父文档,如下所示:
{
"_id" : ObjectId("5818fa596969a1339093a7da"),
"fecha" : ISODate("2016-11-01T05:00:00.000Z"),
"spot" : "5808e3926969a126c8365c94",
"devices" : [
{
"evaluationDate" : ISODate("2016-11-01T20:26:00.000Z"),
"seenTimesCounter" : 0,
"category" : "PRE_PASAJERO",
"status" : "NO_CONECTADO"
},
{
"evaluationDate" : ISODate("2016-11-01T20:26:00.000Z"),
"seenTimesCounter" : 0,
"category" : "PRE_PASAJERO",
"status" : "NO_CONECTADO"
},
{
"evaluationDate" : ISODate("2016-11-01T20:26:00.000Z"),
"seenTimesCounter" : 0,
"category" : "PRE_PASAJERO",
"status" : "NO_CONECTADO"
},
{
"evaluationDate" : ISODate("2016-11-01T20:26:00.000Z"),
"seenTimesCounter" : 0,
"category" : "PRE_PASAJERO",
"status" : "NO_CONECTADO"
},
{
"evaluationDate" : ISODate("2016-11-01T20:26:00.000Z"),
"seenTimesCounter" : 0, …Run Code Online (Sandbox Code Playgroud) 是否可以使用2个或更多个类似于SQL查询的集合在Mongo DB中编写联合查询?
我正在使用spring mongo模板,用例是我需要根据某些条件从3-4个集合中获取数据。我们可以一次完成此操作吗?
例如,我有一个名为“ circuitId”的字段,该字段存在于所有4个集合中。现在,在搜索操作中,我需要从该字段与给定值匹配的所有4个集合中获取所有记录。
这是订单实体:
public class Order
{
@Id
private String id;
private String internalId;
private String externalId;
private String status;
}
public class OrderAssigned
{
@Id
private String id;
private String internalId;
private String externalId;
private String stationId;
private String rejectStatus;
}
Run Code Online (Sandbox Code Playgroud)
我想加入这两个集合。
stationIdOrders.internalId和OrderAssigned.internalId和status = "OrderCreated"就像这个 SQL 查询:
select orders.*
from PARTNER_RESTAURANT_ORDER orders
inner join PARTNER_RESTAURANT_ORDER_ASSIGNED_STATION assigned_station on orders.internalId = assigned_station.internalId
where assigned_station.stationId = "5e2968e2763e750001c8ba5f"
and orders.status = "OrderCreated"
Run Code Online (Sandbox Code Playgroud)