sql >> Databáze >  >> NoSQL >> MongoDB

najít podle čísla $type v mongodb

Existuje pouze jeden číselný typ v JavaScriptu (Number ), které je reprezentováno binárně jako číslo s pohyblivou řádovou čárkou IEEE 754 (dvojité).

Ve specifikaci BSON toto bude reprezentováno jako double (typ 1), takže byste měli být schopni najít pomocí:

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

Existuje několik mongo shell helpers, pokud chcete vložit různé BSON datové typy :

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)

Takže například:

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

Různé číselné reprezentace se budou stále shodovat, pokud provedete find() na čísle, které může být reprezentováno ve více formátech (tj. 32bitové celé číslo může být také reprezentováno jako double nebo int64).

Například:

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
}

Pokud však najdete podle $type , reprezentace BSON je jiná:

> 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. json.loads a Redis v pythonu 3.5

  2. Pochopení mongo db vysvětlit

  3. Jak na to:Použijte rozhraní Apache HBase REST, část 3

  4. Načítání kódu pro vložení JWplayeru z kolekce databáze do šablony stránky v meteor.js