Make redundant createView() a no-op
If I call createView() with params that match an existing view (in name and all other attributes), it returns an error. It'd be more convenient if the call simply succeeded without doing any work. The behavior I propose is analogous to the way that createIndex() behaves. With the current behavior my only choices are to (1) unconditionally drop and recreate the view, or (2) read the current view definition and see whether it matches the definition I want. The first choice is unacceptable because for a period of time (albeit a short one) the view won't exist and queries that use it will fail.
This type of scenario comes up in the context of automatic deployment-time DB operations that my service does. Today these operations consist mostly of index creations and rely on the createIndex() behavior I describe above I would like to add view creations to the set of operations and have the same behavior.