What Is New in MongoDB 1.4
MongoDB 1.4 delivers a significant update focused on performance, indexing, and operational tooling. This release introduces new sharding commands, enhances the indexing capabilities, and improves the overall database management experience.
| Category | Key Changes |
|---|---|
| New Features | Sharding commands (split, shardcollection), Geospatial indexing, Index building in foreground/background |
| Improvements | Faster index builds, Enhanced mongosniff tool, Improved mongodump output |
| Bug Fixes | Replication fixes, Windows service control issues, Cursor handling improvements |
| Deprecations | The $pushAll operator is deprecated |
How did sharding and indexing get better?
Sharding is now a first-class citizen with dedicated commands. You can use shardcollection to define a sharded collection and split to manage chunks directly, giving you more control over your data distribution.
For indexing, you can now choose between foreground and background builds. Foreground is faster but locks the database, while background is slower but allows non-blocking operations. This release also adds support for compound geospatial indexes, which is huge for location-based queries.
What tools were improved for database operations?
The mongosniff tool got a major upgrade, making it much easier to inspect and debug the traffic between clients and the database server. This is invaluable for diagnosing driver issues or understanding query patterns.
Additionally, mongodump now includes the collection name in its progress output. It's a small change, but it makes monitoring long-running dump operations significantly less confusing when working with multiple collections.
Were there any important bug fixes?
Yes, several critical stability issues were resolved. A bug that could cause secondaries to crash during replication was fixed, preventing unexpected downtime in replica sets.
On Windows, the --install and --remove service commands were fixed to work reliably. Another fix addressed a problem where a cursor could time out on a loaded server even if it was still active.
FAQ
Is the new sharding support production-ready?
Yes, the shardcollection and split commands are the new official way to manage sharding. In practice, this gives you a more stable and scriptable alternative to the legacy methods.
Why would I choose a foreground index build over a background one?
Foreground builds complete much faster but block all other operations on the database. Use it during maintenance windows. For builds on large collections that need to stay online, stick with the slower background option.
What should I use instead of the deprecated $pushAll operator?
You should replace $pushAll with repeated $push operations with the $each modifier. For example, { $push: { field: { $each: [ "a", "b" ] } } }.
How does the improved mongosniff help with driver development?
It provides a clear, human-readable log of all network traffic. If you're building a custom driver or debugging an existing one, you can see the exact BSON objects being sent and received, which is essential for troubleshooting.
Were there any changes to authentication or security?
This release did not introduce new authentication mechanisms. The focus was primarily on core database features, performance, and operational tooling rather than security-specific updates.