nodejs - mongodb - как найти все где a! = b? - PullRequest
3 голосов
/ 09 июня 2011

Это сеансы сбора

{
    "_id": "R65i3SmvucW9imK2cxA6wdFb.GXoSHjly7obzFNslklNCBvE0UrW/qOiNmiBtPN24/1c",
    "session": {
        "channel": "all",
        "username": "xuka"
    },
    "expires": NumberLong("1307692520000")
} {
    "_id": "zJYZj2jwxa5zN0uZcCZC26zp.Tpp8fVkqwKLZEpRWgq7/3DDTcDw9VSlskBum28gox+0",
    "session": {

        "channel": "3",
        "username": "hellos"
    },
    "expires": NumberLong("1307692826000")
}

Мне нужно найти записи, где канал не равен 3, ниже я попробовал ниже

var k =3;
db.collection('sessions', function(err, collection){                        
    collection.find({channel:{'$ne':k}},function(err, cursor) {     
    });
});

проблема: результат дает мне все записи, где канал = 3. Это неправильно.

1 Ответ

9 голосов
/ 09 июня 2011

Попробуйте

var k =3;
db.collection('sessions', function(err, collection){                        
    collection.find({'session.channel':{'$ne':k+''}},function(err, cursor) {     
    });
});

Поскольку каждый элемент коллекции сеансов содержит объект "сеанс", который содержит атрибут "канал".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...