【问题标题】:Return Just An Element From A Mongodb Query (Newbie)从 Mongodb 查询中返回一个元素(新手)
【发布时间】:2017-02-28 11:33:40
【问题描述】:

是否有正确的方法来仅返回与搜索查询匹配的元素?

例如,如果我有

{
    "_id" : ObjectId("5806d"),
    "title" : "vcvc",
    "description" : "vcvc",
    "lessons" : [
        {
            "lesson_body" : "Red Ball",
            "lesson_title" : "Red Ball",
            "_id" : ObjectId("5806s")
        },
        {
            "lesson_body" : "Green Ball",
            "lesson_title" : "Green Ball",
            "_id" : ObjectId("5806y")
        }
    ],
    "__v" : 0
}

我如何才能根据 id 获得以下信息?

{
 "lessons" : 
    {
        "lesson_body" : "Red Ball",
        "lesson_title" : "Red Ball",
        "_id" : ObjectId("5806s")
    }
}

现在我只有以下内容,但似乎只是超时

function(id, classLesson, callback){
    Class.find({'_id': classLesson._id}, {lessons: {$elemMatch: {_id: id}}})
}

【问题讨论】:

    标签: javascript node.js mongodb mongoose mongodb-query


    【解决方案1】:

    您想在查询上指定查询投影,它指定要从数据库返回的字段。

    例如:

    Class.find(
      { '_id': classLesson._id }, // query filter 
      { lessons: 1 } // query projection
    )
    

    您的查询是否应该在 lessons._id 字段上执行 $elemMath?现在,您的代码中的 $elemMatch 被放置在查询的投影部分中,并且不用于过滤。

    【讨论】:

      猜你喜欢
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多