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

objectidフィールドのないmongodbコレクションの最終更新/挿入/削除操作時間を見つける方法

    簡単に言うと、MongoDBには柔軟な スキーマ。日付フィールドを追加するだけです。古いエントリにはそれがないため、最後のエントリにすることはできません。

    そのフィールドをmtimeと呼びましょう 。

    したがって、スキーマ定義に日付フィールドを追加した後、新しいフィールドに降順でインデックスを生成します。

    db.yourCollction.createIndex({mtime:-1})
    

    コレクションの最後のmtimeを今すぐ見つけるのは簡単です:

    db.yourCollection.find({"mtime":{"$exists":true}}).sort({"mtime":-1}).limit(1)
    

    すべてのコレクションに対してこれを行います。上記のクエリが、コレクションをパージするために定義した時間枠内に値を返さない場合は、mtimeフィールドを導入してから変更されていないため、単に値を削除してください。

    コレクションがクリーンアップされたら、mtimeを削除できます。 スキーマ定義のフィールド。ドキュメントから削除するには、簡単なクエリを実行できます:

    db.yourCollection.update(
      { "mtime":{ $exists:true} },
      { "$unset":{ "mtime":""} },
      { multi: true}
    )
    


    1. mongoimportを使用して複数のjsonファイルをインポートします

    2. node.jsmongodbjavascriptスコープの混乱

    3. MongoDBでこの非推奨の警告を削除するにはどうすればよいですか?また、なぜそれが発生するのですか?

    4. いつMongoDB接続を開いたり閉じたりする必要がありますか?