Not through N1QL you need construct yourself in SDK,
You mentioned 15000 documents might doing some loop and calling 15000 queries?
Instead construct objet that 15000 fields with old, new object u want replace and call once.
ar copySchedulesQueryResults = await cluster.QueryAsync(
copySchedulesQuery, options => options
.Parameter(“oldScheduleId”, (string)scheduleId)
.Parameter(“newScheduleId”, newScheduleId.ToString())
.Parameter(“newScenarioId”, newScenarioId.ToString()));
Or post the query that matches 15000 condition and how you are generation new values newScheduleId, newScenarioId.