MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana mengatakan ... cocok ketika bidang adalah angka ... di mongodb?

Gunakan $type operator di $match . Anda :

db.zips.aggregate([
    {$project : {city:{$substr:["$city",0,1]}}},
    {$sort : {city : 1}}, 
    {$match: {city: {$type: 16}}}      // city is a 32-bit integer
]);

Tidak ada nilai tipe tunggal untuk angka sehingga Anda perlu mengetahui tipe angka yang Anda miliki:

32-bit integer   16
64-bit integer   18
Double           1

Atau gunakan $or operator untuk mencocokkan semua jenis angka:

db.zips.aggregate([
    {$project : {city:{$substr:["$city",0,1]}}},
    {$sort : {city : 1}}, 
    {$match: {$or: [{city: {$type: 1}}, {city: {$type: 16}}, {city: {$type: 18}}]}}
]);

Atau bahkan gunakan $not untuk mencocokkan semua dokumen di mana city bukan string:

db.zips.aggregate([
    {$project : {city:{$substr:["$city",0,1]}}},
    {$sort : {city : 1}}, 
    {$match: {city: {$not: {$type: 2}}}}      // city is not a string
]);

DIPERBARUI

Untuk mencocokkan semua dokumen di mana city adalah string numerik Anda dapat menggunakan ekspresi reguler:

db.zips.aggregate([
    {$project : {city:{$substr:["$city",0,1]}}},
    {$sort : {city : 1}}, 
    {$match: {city: /^\d.*$/}}      // city is all digits
]);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sumber Daya MongoDB Teratas

  2. Agregasi Golang mongodb

  3. MongoDB menemukan catatan hari ini

  4. Variabel Agregasi MongoDB SEKARANG

  5. MongoDB:Temukan objek dengan nama bidang yang dimulai dengan