web-dev-qa-db-ja.com

モンゴ。フィールドが数値かどうかを確認する方法

フィールドが数値であるmongodbドキュメントを選択する方法

このフィールドの内容の例: "2"、 "a"、 "Z"、3

16
Andrei

$ 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 }}]})
35
Adam Comerford

フィールドのタイプbarを使用して、

typeof db.foo.findOne().bar

http://docs.mongodb.org/manual/core/Shell-types/#check-types-in-Shell

17
ebr

代わりにエイリアス「number」を使用できます。

{ field: {$type:"number"}}
7
Youssef Youssef

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 も確認できます

2
Tarun Vashisth