# Add extra fields for doc\_as\_upsert

**URL:** <https://discuss.elastic.co/t/add-extra-fields-for-doc-as-upsert/95239>\
**Category:** Logstash\
**Created:** [July 31, 2017, 7:51pm UTC](https://discuss.elastic.co/t/add-extra-fields-for-doc-as-upsert/95239 "2017-07-31T19:51:29Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![amjad.hussain](https://avatars.discourse-cdn.com/v4/letter/a/919ad9/32.png) [@amjad.hussain](https://discuss.elastic.co/u/amjad.hussain)\
**Post date:** [July 31, 2017, 7:51pm UTC](https://discuss.elastic.co/t/add-extra-fields-for-doc-as-upsert/95239/1 "2017-07-31T19:51:29Z")

</div>

I have written one Logstash script for update.  
This script will update or insert if the record is not present in elasticsearch.  
I am using doc\_as\_upsert as true for that.

input {

file {  
path =\> "C:/PADS\_ELK/Logstash/logstash-5.4.1/data/input.txt"  
start\_position =\> "beginning"  
}

}

filter{

csv{  
columns =\> ["col1","col2","col3"]  
separator =\> ","  
}

ruby {  
add\_field =\> {  
"col3" =\> "%{[@timestamp]}"  
"updated\_by" =\> "batch"  
}

```
	code => "if event.get('col1').to_i < 1000
				event.set('col1','1000')
	 		  end
	 		if event.get('col2').to_i < 10
 	          event.set('col2','10')
 	   end"   	
				
  remove_field => ["message", "path","@version","@timestamp","type","host"]		 							   
		}			

```

}

output {

stdout { codec =\> rubydebug }  
elasticsearch{  
hosts =\> ["localhost:9200"]  
index =\> "my\_index"  
action =\> "update"  
document\_type =\> "my\_type"  
document\_id =\> "%{col1}%{col2}%{col3}"  
doc\_as\_upsert =\> "true"  
}  
}

**For updating the records, it is fine. But, I want to add one more field if this is insert. How can I do that?**

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [August 28, 2017, 8:04pm UTC](https://discuss.elastic.co/t/add-extra-fields-for-doc-as-upsert/95239/2 "2017-08-28T20:04:38Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
