2016-09-24 8 views
0

私は以下のようなコレクションを持っています。このデータは、cronジョブで20分ごとにエンドポイントから取得されます。変更点のみを保持してコレクションを減らすにはどうすればよいですか?

{"id":AFFD6,"empty":8,"capacity":15,"ready":6,"t":1474370406,"_id":"kROabyTIQ5eNoIf1"} 
    {"id":AFFD6,"empty":9,"capacity":15,"ready":5,"t":1474116005,"_id":"kX0DpoZ5fkMr2ezg"} 
    {"id":AFFD6,"empty":9,"capacity":15,"ready":5,"t":1474684808,"_id":"ken1WRN47PTW159H"} 
    {"id":AFFD6,"empty":9,"capacity":15,"ready":5,"t":1474117205,"_id":"kes1gDlG1sBjgV1R"} 
    {"id":AFFD6,"empty":10,"capacity":15,"ready":4,"t":1474264806,"_id":"khILUjzGEPOn0c2P"} 
    {"id":AFFD6,"empty":9,"capacity":15,"ready":5,"t":1474275606,"_id":"ko9r8u860es7E2hI"} 
    {"id":AFFD6,"empty":9,"capacity":15,"ready":5,"t":1474591207,"_id":"kpLS6mCtkIiffTrN"} 

は私がempty(その結果、ready)の変化を示していない任意のドキュメント(行)を破棄します。私の目標は、このコレクションでこれらの値が変更された最新のタイムスタンプを見つけることです。ベター示す

、私は、値は以下のような変更どこにそれを減らしたい:

{"id":AFFD6,"empty":8,"capacity":15,"ready":6,"t":1474370406,"_id":"kROabyTIQ5eNoIf1"} 
{"id":AFFD6,"empty":9,"capacity":15,"ready":5,"t":1474117205,"_id":"kes1gDlG1sBjgV1R"} 
{"id":AFFD6,"empty":10,"capacity":15,"ready":4,"t":1474264806,"_id":"khILUjzGEPOn0c2P"} 
{"id":AFFD6,"empty":9,"capacity":15,"ready":5,"t":1474591207,"_id":"kpLS6mCtkIiffTrN"} 

私はMongoDBのクエリででこれを行うことができますか?それとも、JavaScriptフィルタ機能を使うのがよいですか?

答えて

1

MongoDBでは、インデックスに一意制約を指定できます。これらの制約により、アプリケーションは、挿入されたフィールドに重複した値を持つ文書を挿入することができません。

ユニーク

db.collection.createIndex({ "id": 1 }, { unique: true }) 

はまた、より多くの明確化のためMongoDB documentationを指すようにするには、次のコードを使用します。

関連する問題