Whether or not the length property exists depends on what type of collection you’re using. If your model is a native array (that has Ember extensions added in), then the length property will be accurate. But if you’re using an Ember class, like a PromiseArray, then length isn’t a property on the object itself, rather a computed property that could be proxying to another object. And since most of the Ember guides work without the assumption of Ember-Data, I would imagine that particular example is using a native array.
However, I personally like to always use Em.get(posts, 'length') regardless of the object type, as it protects me from null references.