我已经挣扎了几个小时。这就是我需要实现的目标:找到满足两个条件的文档:Field1 =' Value1'和users.userName =' Value2'
{
"_id": "eRotXZoKL4aS3KygF",
"Field1": "Value1",
"usercount": 1,
"owner": "Admin",
"accessType": "Level1",
"users": {
"userName": "Value2",
"expired": false
}
}

我的查询
Collection.findOne({},{Field1: channel, users:{userName: nickName}});

返回它找到的第一个匹配项。换句话说,它找到用户所在的文档:{userName:' Value2'},但忽略,或者看起来似乎是Field1:' Value1'
答案 0 :(得分:0)
findOne的第一个参数是选择器。试试这个:
Collection.findOne({Field1: channel, 'users.userName': nickName});
Mongo在选择器对象的所有字段之间使用隐式AND。另请注意,要匹配嵌套对象,您将使用点表示法来引用embedded documents - 在本例中为'users.username'
。