您好,我需要有关MongoDB的帮助:
“我的文档”具有以下属性(由带有Spring的Map生成):
"filter":{"billingAccount_id":["multisim5"],"simulate":["true"]}
我正在尝试使用此代码(由spring生成)查找文档
query.addCriteria(Criteria.where("filter").all(getMapWithValues()));
这将导致
"filter" : { "$all" : [{ "billingAccount_id" : ["multisim5"] }] }
但是我没有结果。在这里做什么
谢谢您的帮助
答案 0 :(得分:0)
您将$ all应用于对象(过滤器)而不是数组(filter.billingAccount_id)。更改您的请求(和方法getMapWithValues)以获取类似内容:
{"filter.billingAccount_id" : { "$all" : ["multisim5"] }}
但是$ all用于查找至少包含查询中提供的所有值的数组。由于$ all参数中有一个唯一元素,因此$ all在这里无用,并且以下查询输出的结果相同:
{"filter.billingAccount_id" : "multisim5"}
编辑:如果要查询具有完全匹配项的数组(“ multisim5”,别无其他),请使用以下命令:
{"filter.billingAccount_id" : { "$eq" : ["multisim5"] }}