इसका कारण यह है कि आप $ ऑपरेटर का उपयोग कर रहे हैं:स्थितीय $ ऑपरेटर एक तत्व (बहु नहीं) की पहचान करता है सरणी में तत्व की स्थिति को स्पष्ट रूप से निर्दिष्ट किए बिना अद्यतन करने के लिए एक सरणी में। पढ़ने के संचालन से एक सरणी तत्व को प्रोजेक्ट करने या वापस करने के लिए, $ प्रोजेक्शन ऑपरेटर देखें।
आप इसे करने के लिए नीचे दिए गए कोड का उपयोग कर सकते हैं:
db.playground.find({
$and: [
{
"TargetSegments.Colors": {
$exists: true
}
},
{
"ProjectFileId": 1
},
{
"SourceLanguageId": 2
},
{
"TargetSegments": {
$elemMatch: {
"LanguageId": 1
}
}
}
]
}).forEach(function(item)
{
var targets = item.TargetSegments;
for(var index = 0; index < targets.length; index++)
{
var target = targets[index];
target.Segment = null,
target.Colors= [],
target.Widths= [],
target.Heights= []
}
db.playground.save(item);
});