Have you ever wondered how you can remove DCA Wrangler models that are stored in the Petro.ai Database?

Dream no longer!
You will need a couple of things:
1. Well Decline Curve or Type Curve models created with the DCA Wrangler
2. Robo 3T (free) or Studio 3T (easier use, not free).
3. Valid Petro.ai Database Connection.
Quick FYI – Petro.ai Collections (Tables)
prod.WellDeclineCurveModels – Decline Curve Models saved using Single-Well or Multi-Well mode
prod.TypeCurveModels – Type Curve Models saved using Type Curve mode
Robo 3T and Studio 3T
Code for Single-Well/Multi-Well (Robo 3T)
/*
This script will DELETE all decline curve models listed below.
Change "false" below to "true" in order to delete, otherwise it will just count (for safety)
*/
//List all model names, in quotes and separated by commas:
var modelNames = [
'MyModel1',
'MyModel2',
]
//////////////////////////////////////////////////////
var I_WOULD_LIKE_TO_DELETE_ALL_MODELS = false;
//////////////////////////////////////////////////////
modelNames.forEach((modelName) => {
if (I_WOULD_LIKE_TO_DELETE_ALL_MODELS) {
printjson({
_id: modelName,
modelCount: db.getCollection("prod.WellDeclineCurveModels").deleteMany({'modelName': modelName}),
});
}
else {
printjson({
_id: modelName,
modelCount: db.getCollection("prod.WellDeclineCurveModels").count({'modelName': modelName}),
});
}
});
Code for Single-Well/Multi-Well (Studio 3T)
//Define Database Below
use petroai;
/*
This script will DELETE all decline curve models listed below.
Change "false" below to "true" in order to delete, otherwise it will just count (for safety)
*/
//List all model names, in quotes and separated by commas:
var modelNames = [
'MyModel1',
'MyModel2',
]
//////////////////////////////////////////////////////
var I_WOULD_LIKE_TO_DELETE_ALL_MODELS = false;
//////////////////////////////////////////////////////
modelNames.forEach((modelName) => {
if (I_WOULD_LIKE_TO_DELETE_ALL_MODELS) {
printjson({
_id: modelName,
modelCount: db.getCollection("prod.WellDeclineCurveModels").deleteMany({'modelName': modelName}),
});
}
else {
printjson({
_id: modelName,
modelCount: db.getCollection("prod.WellDeclineCurveModels").count({'modelName': modelName}),
});
}
});
Examples:
Robo 3T

Studio 3T – IntelliShell

Code for Type Curves (Robo 3T)
/*
This script will DELETE all type curve models listed below.
Change "false" below to "true" in order to delete, otherwise it will just count (for safety)
*/
//List all model names, in quotes and separated by commas:
var modelNames = [
'MyModel1',
'MyModel2',
]
//////////////////////////////////////////////////////
var I_WOULD_LIKE_TO_DELETE_ALL_MODELS = false;
//////////////////////////////////////////////////////
modelNames.forEach((modelName) => {
if (I_WOULD_LIKE_TO_DELETE_ALL_MODELS) {
printjson({
_id: modelName,
modelCount: db.getCollection("prod.TypeCurveModels").deleteMany({'modelName': modelName}),
});
}
else {
printjson({
_id: modelName,
modelCount: db.getCollection("prod.TypeCurveModels").count({'modelName': modelName}),
});
}
});
Code for Type Curves (Studio 3T)
//Define DB Below
use petroai;
/*
This script will DELETE all type curve models listed below.
Change "false" below to "true" in order to delete, otherwise it will just count (for safety)
*/
//List all model names, in quotes and separated by commas:
var modelNames = [
'MyModel1',
'MyModel2',
]
//////////////////////////////////////////////////////
var I_WOULD_LIKE_TO_DELETE_ALL_MODELS = false;
//////////////////////////////////////////////////////
modelNames.forEach((modelName) => {
if (I_WOULD_LIKE_TO_DELETE_ALL_MODELS) {
printjson({
_id: modelName,
modelCount: db.getCollection("prod.TypeCurveModels").deleteMany({'modelName': modelName}),
});
}
else {
printjson({
_id: modelName,
modelCount: db.getCollection("prod.TypeCurveModels").count({'modelName': modelName}),
});
}
});
Examples:
Robo 3T

Studio 3T – IntelliShell
Enjoy!
Stay tuned for the next blog where I will talk about how to rename your model.

Support Engineer at Petro.ai