The example function given in the documentation is db.collection.find(query, projection, options), but it’s actually db.collection.find(query, options), with projection being an option in options, which Is this an error?
What versions of the server / shell are you using? I don’t normally use a project on a find and just jump straight into an aggregation but this is what I did:
In that case the difference if between the shell method and the node.js API interface.
As you say, the node.js find API passes a projection as an option but the shell call does not, the documentation you linked above was for the shell interface (see yellow warning on the link you sent).
The node.js find API here documents the node.js surface: