       for name, field of obj
         if field instanceof globals.Document._ObservingField
           sourceFields[field.sourcePath] = 1
+          index = {}
+          index["#{ field.sourcePath }._id"] = 1
+          indexes.push index
         else if field not instanceof globals.Document._Field
           sourceFieldsWalker field
 
     sourceFieldsWalker @Meta.fields
+
+    unless updateAll
+      for index in indexes
+        @Meta.collection._ensureIndex index
 
     initializing = true
 

# We have to modify prototype directly because there are classes which already inherit from the class
# and we cannot just override the class as we are doing for other server-side only methods.
globals.Document._TargetedFieldsObservingField::_setupTargetObservers = (updateAll) ->
  initializing = true

  observers =

  handle.stop() if updateAll

# Cannot use => here because we are not in the globals.Document._Trigger context.
# We are modifying prototype directly to match code style of
# _TargetedFieldsObservingField::_setupTargetObservers but in this case it is not
# really needed, because there are no already existing classes which would inherit
# from globals.Document._Trigger.
