sql >> データベース >  >> NoSQL >> MongoDB

mongodbの_idを使用して特定の日に挿入された値を取得したい

    ObjectIdが部分的に「タイムスタンプ」に基づいていることは事実ですが、通常、これはObjectId値からこの日付を「抽出」するための「クライアント」ライブラリ操作です。

    これは、 $where 、ただし、コレクション全体を「スキャン」する必要があるため、あまり効率的ではありません:

     db.collection.find(function() {
         return (
            ( this._id.getTimestamp().valueOf() - 
              this._id.getTimestamp().valueOf() % ( 1000 * 60 * 60 * 24 ) )
            == new Date("2014-07-14").valueOf() );
     })
    

    これは基本的に、ObjectIdかどうかを比較するために比較されます 指定された日付と同じ日に作成されました。他の日付の計算または方法は、他の間隔に適用されます。




    1. mongodbを使用してエンティティ内の場所を定義する方法

    2. ネストされた配列で$unwindを使用した結果?

    3. Mongodbエラーは、テキストインデックスを使用して$textクエリを満たすことができませんでした

    4. scanAndOrderの削除:MongoDBクエリ結果でtrue