$type

语法

  1. { <字段名>: { $type: <1|2> } }

说明

返回字段值的类型。

作用例子
1表示获取数值形式结果。16
2表示获取字符串形式的结果。int32

类型列表

Type描述数值形式字符串形式
32-bit integer整型,范围-2147483648至214748364716int32
64-bit integer长整型,范围-9223372036854775808至9223372036854775807。如果用户指定的数值无法适用于整数,则 SequoiaDB 自动将其转化为长整数。18int64
double浮点数,范围-1.7E+308至1.7E+3081double
decimal高精度数,范围小数点前最高131072位;小数点后最高16383位100decimal
string字符串2string
ObjectID十二字节对象 ID7oid
boolean布尔(true 或 false)8bool
date日期(YYYY-MM-DD)9date
timestamp时间戳(YYYY-MM-DD-HH.mm.ss.ffffff)17timestamp
Binary dataBase64 形式的二进制数据5bindata
Regular expression正则表达式11regex
Object嵌套 JSON 文档对象3object
Array嵌套数组对象4array
null10null
MinKey最小值-1minkey
MaxKey最大值127maxkey

示例

在集合 foo.bar 插入1条记录:

  1. > db.foo.bar.insert( { "a" : 123 } )
  2. > db.foo.bar.insert( { "a": "abc" } )

SequoiaDB shell 运行如下:

  • 作为选择符使用,返回字段“a”值的类型:

    1. > db.foo.bar.find( {}, { "a": { "$type": 1 } } )
    2. {
    3. "_id": {
    4. "$oid": "5832623892a95ad71f000000"
    5. },
    6. "a": 16
    7. }
    8. {
    9. "_id": {
    10. "$oid": "5832624692a95ad71f000001"
    11. },
    12. "a": 2
    13. }
    14. Return 2 row(s).

    Note:
    { “a”: 123 } 中,“a”为整数类型,类型数值为16。
    { “a”: “abc” } 中,“a”为字段串类型,类型数值为2。

    1. > db.foo.bar.find( {}, { "a": { "$type": 2 } } )
    2. {
    3. "_id": {
    4. "$oid": "5832623892a95ad71f000000"
    5. },
    6. "a": "int32"
    7. }
    8. {
    9. "_id": {
    10. "$oid": "5832624692a95ad71f000001"
    11. },
    12. "a": "string"
    13. }
    14. Return 2 row(s).

    Note:
    { “a”: 123 } 中,“a”为字段串类型,类型字符串值为“int32”。
    { “a”: “abc” } 中,“a”为字段串类型,类型字符串值为“string”。

  • 与匹配符配合使用,匹配字段“a”值的类型为字符串类型的记录:

    1. > db.foo.bar.find( { "a": { "$type": 1, "$et": 2 } } )
    2. {
    3. "_id": {
    4. "$oid": "5832624692a95ad71f000001"
    5. },
    6. "a": "abc "
    7. }
    8. Return 1 row(s).
  • 与匹配符配合使用,匹配字段“a”值的类型为整数类型的记录:

    1. > db.foo.bar.find( { "a": { "$type": 2, "$et": "int32" } } )
    2. {
    3. "_id": {
    4. "$oid": "5832623892a95ad71f000000"
    5. },
    6. "a": 123
    7. }
    8. Return 1 row(s).