我在 mongoDB 中有以下文件
{ "_id" : ObjectId("5215c622f8b2bae39d82b54c"), "params" : { "groupBy" : "days", "country" : "A", "city" : "b" } }
{ "_id" : ObjectId("5215c62df8b2bae39d82b54d"), "params" : { "groupBy" : "days", "country" : "A" } }
{ "_id" : ObjectId("5215c643f8b2bae39d82b54e"), "params" : { "groupBy" : "days" } }
我试图用这个查询找到第一个文档
{params : {groupBy : 'days', country : 'A', 'city' : 'b'}}
好的,没问题,它可以工作。让我们试试这个
{params : {groupBy : 'days', city : 'b', country : 'A'}}
而这个并不令人惊讶。好的,所以现在我知道顺序很重要。
我知道如果我想忽略属性的顺序,我可以这样做来搜索第一个文档。
{ 'params.groupBy' : 'days' , 'params.city' : 'b', 'params.country' : 'A' }
现在考虑我想找到第二个文档并且我之前不知道属性的顺序。所以我要做的是
{'params.groupBy' : 'days' , 'params.country' : 'A'}
但此查询同时查找第一个和第二个文档。
那么我怎样才能找到只有一个查询的第二个文档呢?
编辑:还有一个条件是我不确定将来 params 子文档中有多少属性,并且它可能会不时变化