23

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

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

4

6 に答える 6

47

$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 }}]})
于 2013-05-03T11:14:32.107 に答える
8

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

{ field: {$type:"number"}}
于 2016-12-24T15:17:25.347 に答える
2

typeofin 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も参照できます。

于 2016-05-04T07:40:41.817 に答える