[解決済み】mongodbでISODateを使った日付クエリが動作しないようです。
2022-04-06 16:18:57
質問
MongoDBで最も基本的な日付クエリさえ動作させることができないようです。 以下のようなドキュメントがあります。
{
"_id" : "foobar/201310",
"ap" : "foobar",
"dt" : ISODate("2013-10-01T00:00:00.000Z"),
"tl" : 375439
}
そして、次のようなクエリです。
{
"dt" : {
"$gte" : {
"$date" : "2013-10-01T00:00:00.000Z"
}
}
}
私は 0件 を実行したところ
db.mycollection.find({
"dt" : { "$gte" : { "$date" : "2013-10-01T00:00:00.000Z"}}
})
なぜうまくいかないのか、何か思い当たることはありますか?
参考までに、このクエリを生成しているのは SpringのMongoTemplate そのため、最終的にMongoDBに送信されるクエリを直接コントロールすることはできません。
(追記)
> db.version()
2.4.7
ありがとうございました。
解決方法は?
しかし
$date
の一部です。
MongoDB拡張JSON
で、これはデフォルトで得られるものです。
mongoexport
クエリの一部として使用することはできません。
で完全一致検索すると
$date
のようになります。
db.foo.find({dt: {"$date": "2012-01-01T15:00:00.000Z"}})
を実行すると、エラーが発生します。
error: { "$err" : "invalid operator: $date", "code" : 10068 }
これを試してみてください。
db.mycollection.find({
"dt" : {"$gte": new Date("2013-10-01T00:00:00.000Z")}
})
または(以下のコメントで ユーザー3805045 ):
db.mycollection.find({
"dt" : {"$gte": ISODate("2013-10-01T00:00:00.000Z")}
})
ISODate
は、時刻を伴わない日付の比較にも必要な場合があります (以下のように記述します。
マットモルナー
).
によると mongo シェルのデータ型 はどちらも等価であるべきです。
mongo シェルには、日付を返すためのさまざまなメソッドが用意されています。
- Date() メソッドは、現在の日付を文字列として返します。
- ISODate() ラッパーを使用して Date オブジェクトを返す新しい Date() コンストラクタです。
- ISODate() ラッパーを使用して Date オブジェクトを返す ISODate() コンストラクタです。
を使用し
ISODate
は、やはりDateオブジェクトを返します。
.
{"$date": "ISO-8601 string"}
は、厳密なJSON表現が必要な場合に使用することができます。例えば、Hadoopのコネクターなどです。
関連
-
[解決済み] Sequelizeとnode.jsを使った一括挿入の方法
-
[解決済み] JSONとJSONPの違いは何ですか?
-
[解決済み] int型リスト用JSON
-
[解決済み] JSONの未定義の値型
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み】GoでPOSTリクエストでJSON文字列を送信する方法
-
[解決済み】Goの構造体をJSONに変換する
-
[解決済み] [Solved] ファイルまたはアセンブリ 'Newtonsoft.Json' またはその依存関係の 1 つをロードできませんでした。マニフェストの定義がアセンブリの参照と一致しません。
-
[解決済み】JSONデータからJSONスキーマを生成するツール【終了しました
-
[解決済み】REST API - ファイル(画像)処理 - ベストプラクティス
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AttributeError: 'list' オブジェクトに 'get' 属性がない?
-
[解決済み] JSONとJSONPの違いは何ですか?
-
[解決済み] Angular: 'Cannot find a differ supporting object '[object Object]' of type 'object'. NgForはArrayのようなIterableへのバインディングのみをサポートしています'。
-
[解決済み] JSONファイルを比較するためにjqまたは他のコマンドラインツールを使用すること
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み] node.jsでjsonのためのrequireはありますか?
-
[解決済み】TypeScriptでJSONファイルを取り込む
-
[解決済み】JSON文字列を構築する際に、特殊文字をエスケープする方法は?
-
[解決済み】構造体からフィールドを削除したり、JSONレスポンスでフィールドを隠したりする方法
-
[解決済み】mongodbでISODateを使った日付クエリが動作しないようです。