$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).