如何为MongoDB文档限制其中包含数组的查询的结果

时间:2014-03-07 12:56:41

标签: mongodb

我在MongoDB中有像 -

这样的文档
{
name: "Myname",
Auth: "myAuth",
Books:[{
        b_name: "bookname",
        b_type: "tech",
        datetime: "datetime"
     }],
dept: "IT"
}

现在,如果我只想根据过滤条件获取名称字段,我可以查询 -

db.books.find( { dept: "IT" } , { Myname:1, Auth:1,  _id:0 } )

但是如果我想获得一个字段以及数组"Books"中的一个数组字段,我该如何查询MongoDB

我想要像 -

这样的东西
db.books.find( { dept: "IT" } , { Myname:1, Auth:1, Books.b_name:1,  _id:0 } )

以上查询无效。

1 个答案:

答案 0 :(得分:1)

投影属性是JSON / doccument字段。你没有像Myname这样的领域。其次,你必须使用子文档的引号,如'Books.b_name'

查询:

db.books.find( { dept: "IT" } , { name:1, 'Auth':1, 'Books.b_name':1, _id:0 } ) ;

输出

{ "name" : "Myname", "Auth" : "myAuth", "Books" : [ { "b_name" : "bookname" } ] }