gpt4 book ai didi

mongodb - MongoRepository findByThisAndThat 带有多个参数的自定义@Query

转载 作者:可可西里 更新时间:2023-11-01 09:58:36 25 4
gpt4 key购买 nike

我正在尝试运行此查询

{campaignId: ObjectId('5a6b11e806f0252e1408e379'),'options.path': 'NT'}

它在 Compass 中完美运行,但是当我尝试添加如下所示的 MongoRepository 接口(interface)时:

@Query("{ 'campaignId': ObjectId(?0), 'options.path': ?1})")
public Dialog findByCampaignIdAndPath(String campaignId, String path);

我得到这个异常:

nested exception is com.mongodb.util.JSONParseException:
@Query("{ 'campaignId': ObjectId(?0), 'options.path': ?1})")

使用 spring-boot 版本 1.5.9.RELEASE,而不是 buggy version

EDIT1:指定确切的 id 名称,如评论中所建议的

EDIT2:这是我的对话类

@Getter     
@Setter
@Document(collection = "Dialog")
public class Dialog {
@Id
public String id;
private DBRef campaignId;
private Message message;
private List<Option> options;

public Dialog(final Message message, final List<Option> options) {
this.message = message;
this.options = options;
}
}

最佳答案

试试这个:

@Query("{ 'campaignId': ?0, 'options.path': ?1}")
public Dialog findByIdAndPath(String id, String path);

或者简单地说:

public Dialog findByCampaignIdAndOptionsPath(String id, String path);

如果Option是嵌入文档

关于mongodb - MongoRepository findByThisAndThat 带有多个参数的自定义@Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48460066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com