在MongoDB中从一个JSON对象数组中提取一个值

11 浏览
0 Comments

在MongoDB中从一个JSON对象数组中提取一个值

请考虑以下内容:

我想要提取由George Lucas执导的所有电影。我尝试了以下方法,但它返回了所有项目:

db.movies.find( {"movies.director" : "George Lucas"} ).pretty()

还有这个会导致错误的方法:

db.movies.find({"$pull" : {"movies.director" : "George Lucas"}}).pretty()

请告诉我如何查询数据库以仅检索导演键的值为"George Lucas"的电影。

0
0 Comments

问题原因:在运行代码时缺少了$符号导致报错。

解决方法:在unwind阶段添加$符号即可解决问题。

db.movies.aggregate([
{
    $unwind : "$movies"
},
{
    $match : {
        "movies.director" : "George Lucas"
    }
},
{
    $project : {
        _id : 0,
        movies : 1
    }
}
])

代码运行正常,现在只需要去了解你到底做了什么。

0