我在MongoDB中有这个集合.它包含
val键下的不同类型的值.
另外,请注意我通过val升序对其进行排序.
[test] 2014-02-20 08:53:11.857 >>> db.account.find().sort({val:1});
{
"_id" : ObjectId("5304d25786dd4b348bcc2b2e"),
"username" : "usr10",
"password" : "123",
"val" : [ ]
}
{
"_id" : ObjectId("5304d29986dd4b348bcc2b2f"),
"username" : "usr20",
"password" : "456",
"val" : null
}
{
"_id" : ObjectId("5304e31686dd4b348bcc2b37"),
"username" : "usr80",
"password" : "555",
"val" : 1
}
{
"_id" : ObjectId("5304d50a86dd4b348bcc2b32"),
"username" : "usr50",
"password" : "555",
"val" : [
40
]
}
{
"_id" : ObjectId("5304d4c886dd4b348bcc2b31"),
"username" : "usr40",
"password" : "777",
"val" : 200
}
{
"_id" : ObjectId("5304d2a186dd4b348bcc2b30"),
"username" : "usr30",
"password" : "888",
"val" : {
}
}
{
"_id" : ObjectId("5304d97786dd4b348bcc2b33"),
"username" : "usr50",
"password" : "555",
"val" : {
"ok" : 1
}
}
{
"_id" : ObjectId("5304e2dc86dd4b348bcc2b36"),
"username" : "usr80",
"password" : "555",
"val" : true
}
{
"_id" : ObjectId("5304e22f86dd4b348bcc2b34"),
"username" : "usr60",
"password" : "555",
"val" : ISODate("2014-02-19T16:56:15.787Z")
}
{
"_id" : ObjectId("5304e2c786dd4b348bcc2b35"),
"username" : "usr70",
"password" : "555",
"val" : /abc/
}
[test] 2014-02-20 08:53:19.357 >>>
Run Code Online (Sandbox Code Playgroud)
我正在读一本书,上面写着以下内容.
MongoDB具有关于类型比较的层次结构.有时您将拥有
一个具有多种类型的单个键:例如,整数和布尔值,或字符串
和空值.如果对具有混合类型的键进行排序,则会有一个预定义的
顺序,它们将被排序.从最小值到最大值,此排序
如下:
1.最小值
2. null
3.数字(整数) ,longs,double)
4.字符串
5.对象/文档
6.数组
7.二进制数据
8.对象ID
9.布尔
10.日期
11.时间戳
12.正则表达式
13.最大值
那么为什么我的排序顺序不同?例如,
当我排序(见上文)时,我看到了这些奇怪的东西:
1)我不知道"最小值"和"最大值"是什么意思.
2)数组前面有一个数组.
甚至在null之前就会出现一个空数组.
3)数字1出现在数组之前
4)数组[40]介于数字1和200之间.
有人可以在一些细节中解释这个结果吗?
提前谢谢了.
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |