MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

намиране по $type номер в mongodb

Има само един числов тип в JavaScript (Number ), което е представено в двоична система като число с плаваща запетая IEEE 754 (double).

В BSON спецификация това ще бъде представено като двойно (тип 1), така че трябва да можете да намерите с:

db.people.find({name: { $type: 1 }})

Има някои mongo shell помощници, ако искате да вмъкнете различни BSON типове данни :

42              // Type 1:  double (64-bit IEEE 754 floating point, 8 bytes)
NumberInt(42)   // Type 16: int32  (32-bit signed integer, 4 bytes)
NumberLong(42)  // Type 18: int64  (64-bit signed integer, 8 bytes)

Така например:

db.people.insert({ name: 'default', num: 42 })
db.people.insert({ name: 'NumberLong', num: NumberLong(42) })
db.people.insert({ name: 'NumberInt', num: NumberInt(42) })

Различните цифрови представяния пак ще съвпадат, ако направите find() върху число, което може да бъде представено в множество формати (т.е. 32-битово цяло число може също да бъде представено като двойно или int64).

Например:

db.people.find({num:42})
{
    "_id" : ObjectId("50965aa3038d8c8e85fd3f45"),
    "name" : "default",
    "num" : 42
}
{
    "_id" : ObjectId("50965aa3038d8c8e85fd3f46"),
    "name" : "NumberLong",
    "num" : NumberLong(42)
}
{
    "_id" : ObjectId("50965aa3038d8c8e85fd3f47"),
    "name" : "NumberInt",
    "num" : 42
}

Ако обаче намерите по $type , представянето на BSON е различно:

> db.people.find({num: { $type: 1 }})
{
    "_id" : ObjectId("50965aa3038d8c8e85fd3f45"),
    "name" : "default",
    "num" : 42
}

> db.people.find({num: { $type: 16 }})
{
    "_id" : ObjectId("50965aa3038d8c8e85fd3f47"),
    "name" : "NumberInt",
    "num" : 42
}

> db.people.find({num: { $type: 18 }})
{
    "_id" : ObjectId("50965aa3038d8c8e85fd3f46"),
    "name" : "NumberLong",
    "num" : NumberLong(42)
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongo добави към вложен масив, ако записът не съдържа две съвпадащи полета

  2. избутване на обект в схема на масив в Mongoose

  3. MongoDB:Премахнете последните два знака от String

  4. Грешка в Mongoose - няма метод "toObject" след надграждане

  5. проекцията не работи със заявка за намиране