如何排除Collection.find(查询,投影)的“查询”中的字段

时间:2017-05-22 10:25:45

标签: mongodb

假设我有一个Mongo查询

var myApp = angular.module('myapp', ['ngRoute']);
app.config('$StateProvider', '$UrlRouteProvider','$scope', '$LogProvider', '$http', '$location', '$window',
function ($StateProvider, $UrlRouteProvider, $scope, $http, $location, $window)
{
    $UrlRouteProvider.otherwise("/Login");

    $StateProvider
    .state('Login'),{
        url:'/Login',
        views:{
            '@':{
                templateUrl: "/Views/Home/Login.cshtml",
                controller: 'LoginController'
            }
        }
    }})

现在我想在查询中排除“性别”字段,意味着它应该返回所有20岁的学生并且不关心性别。我是否必须创建没有“性别”的新查询对象?我可以将“性别”的值更改为

var query = {
   age: 20,
   gender: 'male'
}
Students.find(query);

忽略性别?

提前致谢。

1 个答案:

答案 0 :(得分:0)

也许你可以这样做:

genderList = ['m']
// genderList = ['m', 'f', 'a', 'b', ....]
var query = {
   age: 20,
   gender: {$in: genderList}
}
Students.find(query);

将性别转换为列表,如果未指定,请使用所有允许选项的完整列表。

或者当没有指定性别时,设置为{$exists: true}

var query = {
   age: 20,
   gender: {$exists: true}
}
Students.find(query);
相关问题