问题描述
Spring java @query
@Aggregation(pipeline = {"{ '$match': { 'deviceid' : '?0','createdDate' : { '$gte': {'$date' : '?2'},'$lte': {'$date' : '?3'} },'organizationId' : '?1' },'eventType':'removeProduct' }","{ '$project' : { 'organizationId' : '$organizationId','deviceid' : '$deviceid','eventType' : '$eventType','userName' : '$userName','type' : 'basket-action','dateCreated' : '$createdDate','itemsInfo': { '$cond': { 'if': { '$eq': [ '$eventType','clearBasket' ] },'then': { '$map' : { 'input': '$eventData','as': \"item\",'in' : { 'name': '$$item.product.name','sku': '$$item.product.sku','quantity' : '$$item.quantity','amountIncludingTax' : { '$cond' : { 'if' : { '$eq': [ '$$item.product.isFlexiblePrice',true ] },'then' : { '$sum' : [ '$$item.price.amountExcludingTax','$$item.price.tax.totalAmount' ] },'else': { '$sum' : [ '$$item.unitPrice.amountExcludingTax','$$item.unitPrice.tax.totalAmount' ] } } },'measurementPrecisionDecimalCount' : '$$item.product.measurementPrecisionDecimalCount','measurementUnitCode': '$$item.product.measurementUnitCode' } } },'else': [ { 'name': '$eventData.product.name','sku': '$eventData.product.sku','quantity' : '$eventData.quantity'},'amountIncludingTax' : { '$cond': { 'if': { '$eq': [ '$eventData.product.isFlexiblePrice','then': { '$sum' : [ '$eventData.price.amountExcludingTax','$eventData.price.tax.totalAmount' ] },'else' : { '$sum' : [ '$eventData.unitPrice.amountExcludingTax','$eventData.unitPrice.tax.totalAmount'] } } },'measurementPrecisionDecimalCount': '$eventData.product.measurementPrecisionDecimalCount','measurementUnitCode' : '$eventData.product.measurementUnitCode' } } ] } }"})
Mongo 查询有效,但尝试在 Spring 存储库中使用它会引发以下错误。任何输入都会有所帮助。不确定这是由于 java String 中的语法错误还是其他一些问题?
readName can only be called when State is NAME,not when State is VALUE
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)