日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java mongodb 批量删除_MONGODB删除/新增/更改大量记录的方法

發布時間:2023/12/4 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java mongodb 批量删除_MONGODB删除/新增/更改大量记录的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@Indexed(expireAfterSeconds=180)

private?Date?deletedAt;

以上代碼,如果字段deletedAt有值,那么將在180秒后被MONGODB刪除,如果沒值不會被刪除。

批量新增,小批量更新,防止讀取超時

private??void?insertAll(List?list)?{

if?(null?!=?list)?{

int?total?=?list.size();

int?count?=?(total?+?50000?-1)?/?50000;

for?(int?i?=?0;?i?

int?toIndex?=?((i?+1)?*?50000?>?total)???total?:?((i?+1)?*?50000);

log.info("toIndex?=?"?+?toIndex);

mongoTemplate1.insertAll(list.subList(i?*?50000,?toIndex));

}

}

}

批量更改

import?java.util.Date;

import?org.springframework.beans.factory.annotation.Autowired;

import?org.springframework.data.mongodb.core.MongoTemplate;

import?org.springframework.data.mongodb.core.query.Criteria;

import?org.springframework.data.mongodb.core.query.Query;

import?org.springframework.data.mongodb.core.query.Update;

import?com.tcl.project7.boss.gameapplication.yearendactivities.bigwheelgame.valueobject.SingleUseRedeemCode;

public?class?SingleUseRedeemCodeRepositoryImpl?implements?SingleUseRedeemCodeRepositoryCustom{

@Autowired

private?MongoTemplate?mongoTemplate1;

public?void?batchUpdateSingleUseRedeemCodeList(String?bigWheelGameAwardId)?{

Query?query?=?new?Query();

query.addCriteria(Criteria.where("bigwheelgameawardid").is(bigWheelGameAwardId));

mongoTemplate1.updateMulti(

query,

new?Update().set("bigwheelgameawardid",?"-1")

.set("deletedat",?new?Date()),

SingleUseRedeemCode.class);

}

}

Expire Data from Collections by Setting TTL?

New in version 2.2.

This document provides an introduction to MongoDB’s “time to live” or?TTL?collection feature. TTL collections make it possible to store data in MongoDB and have the?mongod?automatically remove data after a specified number of seconds or at a specific clock time.

Data expiration is useful for some classes of information, including machine generated event data, logs, and session information that only need to persist for a limited period of time.

A special?TTL index property?supports the implementation of TTL collections. The TTL feature relies on a background thread in?mongod?that reads the date-typed values in the index and removes expired?documentsfrom the collection.

Procedures

To create a?TTL index, use the?db.collection.createIndex()?method with theexpireAfterSeconds?option on a field whose value is either a?date?or an array that contains?date values.

NOTE

The TTL index is a single field index. Compound indexes do not support the TTL property. For more information on TTL indexes, see?TTL Indexes.

Expire Documents after a Specified Number of Seconds

To expire data after a specified number of seconds has passed since the indexed field, create a TTL index on a field that holds values of BSON date type or an array of BSON date-typed objects?and?specify a positive non-zero value in the?expireAfterSeconds?field. A document will expire when the number of seconds in the?expireAfterSeconds?field has passed since the time specified in its indexed field.?[1]

For example, the following operation creates an index on the?log_events?collection’s?createdAt?field and specifies the?expireAfterSeconds?value of?3600?to set the expiration time to be one hour after the time specified by?createdAt.

db.log_events.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )

When adding documents to the?log_events?collection, set the?createdAt?field to the current time:

db.log_events.insert( { "createdAt": new Date(), "logEvent": 2, "logMessage": "Success!" } )

MongoDB will automatically delete documents from the?log_events?collection when the document’screatedAt?value?[1]?is older than the number of seconds specified in?expireAfterSeconds.[1](1,?2)?If the field contains an array of BSON date-typed objects, data expires if at least one of BSON date-typed object is older than the number of seconds specified in?expireAfterSeconds.

SEE ALSO

Expire Documents at a Specific Clock Time

To expire documents at a specific clock time, begin by creating a TTL index on a field that holds values of BSON date type or an array of BSON date-typed objects?and?specify an?expireAfterSeconds?value of0. For each document in the collection, set the indexed date field to a value corresponding to the time the document should expire. If the indexed date field contains a date in the past, MongoDB considers the document expired.

For example, the following operation creates an index on the?log_events?collection’s?expireAt?field and specifies the?expireAfterSeconds?value of?0:

db.log_events.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )

For each document, set the value of?expireAt?to correspond to the time the document should expire. For instance, the following?insert()?operation adds a document that should expire at?July?22,?201314:00:00.

db.log_events.insert( { "expireAt": new Date('July 22, 2013 14:00:00'), "logEvent": 2, "logMessage": "Success!" } )

MongoDB will automatically delete documents from the?log_events?collection when the documents’expireAt?value is older than the number of seconds specified in?expireAfterSeconds, i.e.?0?seconds older in this case. As such, the data expires at the specified?expireAt?value.

posted on 2015-12-11 15:03 paulwong 閱讀(1225) 評論(0) ?編輯 ?收藏 所屬分類: MONGODB

總結

以上是生活随笔為你收集整理的java mongodb 批量删除_MONGODB删除/新增/更改大量记录的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。