1

我正在尝试按降序对上限集合进行排序。

我尝试过的:

    @Tailable
    @Query(sort = "{$natural:-1}")
    Flux<Message> findAllByConversationId(String conversationId);

它给:

查询失败,错误代码为 2,错误消息不能使用除 {$natural: 1}' 以外的排序的 tailable 选项

但是当我在 robo3t 中使用这个查询时:

db.getCollection('message').find({}).sort({$natural:-1})

它工作正常!

有什么帮助吗?

4

1 回答 1

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);
}

有关更多详细信息,请参阅链接

于 2019-11-25T08:49:44.823 回答