mongoose - how come findOne returns the mongoose Model object but find doesn't?

How come when I use mongoose findOne method, the object it found that is returned in the callback is a valid mongoose Model object (meaning I can call the mongoose model helper methods on it, like id for sub-documents or remove to delete it), and when I call mongoose find methode I just get back a javascript object representing the document i was looking for ?

findOne gives you a single mongoose document whereas find gives you an array of all matching mongoose documents back, not a cursor.

YourModel.find({ something: true }, function (err, docs) {
  if (err) return handleErrorSomehow(err)
  console.log(Array.isArray(docs)) // true
  docs.forEach(function (doc) {
    console.log(typeof doc.save) // function
  })
})