フィールドが数値であるmongodbドキュメントを選択するには?
このフィールドの内容の例: "2"、"a"、"Z"、3
$type演算子を使用して、フィールドの BSON タイプに基づいて選択できます。これにより、必要なものが得られます。
たとえば、すべての文字列を検索するには、次のようにします。
db.collection.find( { field: { $type : 2 } } )
または、すべての double を検索するには (これは通常、Javascript のデフォルトの動作によりシェルから格納される数値です)、次のようにします。
db.collection.find( { field: { $type : 1 } } )
(潜在的に) 整数には 2 つのタイプがあるため、次のようなものを使用する必要があります。
db.collection.find({$or : [{"field" : { $type : 16 }}, {"field" : { $type : 18 }}]})
最後に、integer または double のすべての数値を取得するには、次のようにします。
db.collection.find({$or : [{"field" : { $type : 1 }}, {"field" : { $type : 16 }}, {"field" : { $type : 18 }}]})
代わりにエイリアス「番号」を使用できます。
{ field: {$type:"number"}}
typeof
in mongo は type も返し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も参照できます。