今天,在一个偶然的机会,在Mongodb的文档中看到$type(https://docs.mongodb.com/manual/reference/operator/query/type/),试了一下其中的功能,觉得不错,在列表最后
Type | Number | Alias | Notes |
---|---|---|---|
Min key | -1 | “minKey” | |
Max key | 127 | “maxKey” |
在Robo 3T中对一个collection进行查找
db.getCollection('c1').find({"id":{$type: 127}})
#结果
Fetched 0 record(s) in 1ms
此collection中有10万条数据,查找的字段是数值型,有最大值,怎么没有找出想要的值呢?
又试了一下-1,还是如此。
再认真看文档,得到提示
This returns
{
"_id" : 2,
"address" : {
"building" : "1166",
"coord" : [ -73.955184, 40.738589 ],
"street" : "Manhattan Ave",
"zipcode" : "11222"
},
"borough" : "Brooklyn",
"cuisine" : "Bakery",
"grades" : [
{ "date" : ISODate("2014-03-03T00:00:00Z"), "grade" : { "$maxKey" : 1 }, "score" : 2 },
{ "date" : ISODate("2013-09-11T00:00:00Z"), "grade" : "B", "score" : 6 },
{ "date" : ISODate("2013-01-24T00:00:00Z"), "grade" : { "$maxKey" : 1 }, "score" : 3 },
{ "date" : ISODate("2011-11-23T00:00:00Z"), "grade" : "B", "score" : 5 }
],
"name" : "Dainty Daisey's Donuts",
"restaurant_id" : "30075449"
}
我将其中一个id的值替换为 { “$maxKey” : 1 }。运行语句,可以查出需要的结果。
它们的作用,估计是用来标识最大最小值的,实际应用场景暂时没想到。