NodeJS - Mongoose (Object has no method "id")

When I try this code in my Application:

app/models/Post.coffee

mongoose      = require "mongoose"
CommentModel  = require "./Comment"
Comment       = CommentModel.Schema
Schema        = mongoose.Schema

Post = new Schema {
    title: String,
    slug: {type: String, index: { unique: true, dropDubs: true }},
    content: String,
    author: String,
    tags: [String],
    comments: [Comment],
    created: { type: Date, default: Date.now }
}

Post.statics.findBySlug = (slug, cb) ->
    this.model("Post").findOne({ slug: slug }, cb)

PostModel = mongoose.model "Post", Post

module.exports = PostModel

app/models/Comment.coffee

mongoose  = require("mongoose")
Schema    = mongoose.Schema

Comment = new Schema {
    author: String,
    content: String,
    approved: Boolean,
    created: { type: Date, default: Date.now }
}


CommentModel = mongoose.model "Comment", Comment

module.exports = CommentModel

app/controllers/PostsController.coffee (Just one method)

commentDestroy: (req, res, next) ->
    Post.findBySlug req.params.slug, (err, doc) ->
        if (err)
            return next err

        if doc == null
            res.send 404
            return

        doc.comments.id(req.params.comment).remove()
        doc.save (err) ->
            if err
                next err

            res.json doc

It ends with error:

TypeError: Object [object Object],[object Object],[object Object],[object Object],[object Object] has no method 'id'
    at Promise.PostsController.commentDestroy (/home/r41ngoloss/Projects/www/my-express/app/controllers/PostsController.js:88:22)
    at Promise.addBack (/home/r41ngoloss/Projects/www/my-express/node_modules/mongoose/lib/promise.js:128:8)
    at Promise.EventEmitter.emit (events.js:96:17)
    at Promise.emit (/home/r41ngoloss/Projects/www/my-express/node_modules/mongoose/lib/promise.js:66:38)
    at Promise.complete (/home/r41ngoloss/Projects/www/my-express/node_modules/mongoose/lib/promise.js:77:20)
    at Query.findOne (/home/r41ngoloss/Projects/www/my-express/node_modules/mongoose/lib/query.js:1533:15)
    at model.Document.init (/home/r41ngoloss/Projects/www/my-express/node_modules/mongoose/lib/document.js:229:11)
    at model.init (/home/r41ngoloss/Projects/www/my-express/node_modules/mongoose/lib/model.js:192:36)
    at Query.findOne (/home/r41ngoloss/Projects/www/my-express/node_modules/mongoose/lib/query.js:1531:12)
    at exports.tick (/home/r41ngoloss/Projects/www/my-express/node_modules/mongoose/lib/utils.js:408:16)

I already tried to find solution for my problem, but i found just this and I think, that I have schemas in right order (By require).

Thanks for every answer.

The reason that your are getting that error is that you are not getting the Comment schema correctly in the Post.coffee file. When I do what you did, the Comment variable is undefined. Modify the top of your Post.coffee file to:

mongoose = require "mongoose"
Comment  = mongoose.model('Comment').schema
Schema   = mongoose.Schema

Now the Comment variable is the schema of the Comment model.