diff --git a/dalmdl/coremongo/coremongo.go b/dalmdl/coremongo/coremongo.go
index 4998e981a7f4feec598a213ebb1f698d00db6768..b8dfa2a1723041c66930a51f287b96afed743105 100644
--- a/dalmdl/coremongo/coremongo.go
+++ b/dalmdl/coremongo/coremongo.go
@@ -186,6 +186,10 @@ func GetMongoConnection(hostName string) (*mongo.Client, error) {
 type MongoDAO struct {
 	hostName       string
 	collectionName string
+	MetaData       MetaData
+}
+type MetaData struct {
+	UpdateOps map[string]interface{}
 }
 
 // GetMongoDAOWithHost return mongo DAO instance
@@ -515,6 +519,11 @@ func (mg *MongoDAO) PushData(selector map[string]interface{}, data interface{})
 	return nil
 }
 
+//set update option for custom update
+func (mg *MongoDAO) SetUpdateOps(updateOps map[string]interface{}) {
+	mg.MetaData.UpdateOps = updateOps
+}
+
 // CustomUpdate - CustomUpdate
 func (mg *MongoDAO) CustomUpdate(selector map[string]interface{}, data interface{}) error {
 	session, sessionError := GetMongoConnection(mg.hostName)
@@ -529,8 +538,26 @@ func (mg *MongoDAO) CustomUpdate(selector map[string]interface{}, data interface
 	if !ok {
 		return errormdl.Wrap("No_Configuration_Found_For_Host: " + mg.hostName)
 	}
+	ops := options.UpdateOptions{}
+	loggermdl.LogError("In coremongo:", mg.MetaData.UpdateOps)
+	if mg.MetaData.UpdateOps != nil {
+		resMarshal, err := json.Marshal(mg.MetaData.UpdateOps)
+		if err != nil {
+			return errormdl.Wrap("cannot marshal:")
+		}
+		obj := gjson.ParseBytes(resMarshal)
+		if obj.Get("arrayFilter").Value() != nil {
+			arr := obj.Get("arrayFilter").Value().([]interface{})
+			ops.SetArrayFilters(options.ArrayFilters{
+				Filters: arr,
+			})
+		}
+		if obj.Get("upsert").Value() != nil {
+			ops.SetUpsert(obj.Get("upsert").Bool())
+		}
+	}
 	collection := session.Database(db.Database).Collection(mg.collectionName)
-	_, updateError := collection.UpdateMany(context.Background(), selector, data)
+	_, updateError := collection.UpdateMany(context.Background(), selector, data, &ops)
 	if errormdl.CheckErr1(updateError) != nil {
 		return errormdl.CheckErr1(updateError)
 	}