sql >> Databasteknik >  >> NoSQL >> MongoDB

hitta efter $typnummer i mongodb

Det finns bara en numerisk typ i JavaScript (Number ), som representeras i binärt som ett IEEE 754 flyttal (dubbelt).

I BSON-specifikationen detta kommer att representeras som en dubbel (typ 1), så du bör kunna hitta med:

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

Det finns några mongo skalhjälpare om du vill infoga olika BSON datatyper :

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)

Så till exempel:

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

De olika numeriska representationerna kommer fortfarande att matcha om du gör en find() på ett tal som kan representeras i flera format (dvs. ett 32-bitars heltal kan också representeras som ett dubbelt eller int64).

Till exempel:

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
}

Men om du hittar genom $type , BSON-representationen är annorlunda:

> 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. hur uppdaterar man en Mongo.db-samling i meteor.js?

  2. Vilket är det mest tidseffektiva sättet att serialisera/deserialisera en DataTable till/från Redis?

  3. Hur använder jag Map/Reduce i MongoDB?

  4. Få namn på alla nycklar i samlingen