フィールドが数値であるmongodbドキュメントを選択する方法
このフィールドの内容の例: "2"、 "a"、 "Z"、3
$ type 演算子を使用して、フィールドのBSONタイプに基づいて選択できます。これにより、必要なものが得られます。
したがって、たとえば、すべての文字列を検索するには、次のようにします。
db.collection.find( { field: { $type : 2 } } )
または、すべての倍精度浮動小数点数(通常、デフォルトのJavascript動作のおかげでシェルから格納される数値です)を見つけるには、次のようにします。
db.collection.find( { field: { $type : 1 } } )
(潜在的に)2つのタイプの整数があるため、次のようなものを使用する必要があります。
db.collection.find({$or : [{"field" : { $type : 16 }}, {"field" : { $type : 18 }}]})
最後に、すべての数値を取得するには、整数または倍精度浮動小数点数:
db.collection.find({$or : [{"field" : { $type : 1 }}, {"field" : { $type : 16 }}, {"field" : { $type : 18 }}]})
フィールドのタイプbar
を使用して、
typeof db.foo.findOne().bar
http://docs.mongodb.org/manual/core/Shell-types/#check-types-in-Shell
代わりにエイリアス「number」を使用できます。
{ field: {$type:"number"}}
mongoのtypeof
は、object
タイプのarray
も返します。フィールドがNumber
かどうかを確認するには、以下のクエリを実行して、結果が返されるかどうかを確認します。
db.foo.find('Object.prototype.toString.call(this.bar) === "[object Number]"')
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/toString も確認できます