在 spring 引导中排序上限 mongodb 集合
sorting capped mongodb collection in spring boot
我正在尝试按降序对上限集合进行排序。
我尝试过的:
@Tailable
@Query(sort = "{$natural:-1}")
Flux<Message> findAllByConversationId(String conversationId);
它给出:
Query failed with error code 2 and error message cannot use tailable option with a sort other than {$natural: 1}'
但是当我在 robo3t 中使用这个查询时:
db.getCollection('message').find({}).sort({$natural:-1})
它工作正常!
有帮助吗?
看来我需要使用“ReactiveMongoTemplate”进行本机查询
此代码如我所愿:
public Flux<StreamMessageDto> streamConversationById(String conversationId) {
Criteria criteria = Criteria.where("conversationId").is(conversationId);
Query query = Query.query(criteria);
query.with(Sort.by(Sort.Direction.DESC, "$natural"));
reactiveMongoTemplate.find(query, Message.class);
}
有关详细信息,请参阅 this link
我正在尝试按降序对上限集合进行排序。
我尝试过的:
@Tailable
@Query(sort = "{$natural:-1}")
Flux<Message> findAllByConversationId(String conversationId);
它给出:
Query failed with error code 2 and error message cannot use tailable option with a sort other than {$natural: 1}'
但是当我在 robo3t 中使用这个查询时:
db.getCollection('message').find({}).sort({$natural:-1})
它工作正常!
有帮助吗?
看来我需要使用“ReactiveMongoTemplate”进行本机查询
此代码如我所愿:
public Flux<StreamMessageDto> streamConversationById(String conversationId) {
Criteria criteria = Criteria.where("conversationId").is(conversationId);
Query query = Query.query(criteria);
query.with(Sort.by(Sort.Direction.DESC, "$natural"));
reactiveMongoTemplate.find(query, Message.class);
}
有关详细信息,请参阅 this link