我正在尝试运行此查询
{campaignId: ObjectId('5a6b11e806f0252e1408e379'),'options.path': 'NT'}
它在Compass中完美运行,但是当我尝试添加MongoRepository接口时,如下所示:
@Query("{ 'campaignId': ObjectId(?0), 'options.path': ?1})")
public Dialog findByCampaignIdAndPath(String campaignId, String path);
我得到了这个例外:
嵌套异常是com.mongodb.util.JSONParseException:
@Query(“{'campaignId':ObjectId(?0),'options.path':?1})”)
使用spring-boot版本 1.5.9.RELEASE ,而不是bug version
EDIT1:根据评论
中的建议指定了确切的ID名称EDIT2:这是我的Dialog类
@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;
}
}
答案 0 :(得分:5)
试试这个:
@Query("{ 'campaignId': ?0, 'options.path': ?1}")
public Dialog findByIdAndPath(String id, String path);
或者简单地说:
public Dialog findByCampaignIdAndOptionsPath(String id, String path);
如果Option
是嵌入式文档