nodejs - mongodb - 如何找到所有的地方!= b?

时间:2011-06-09 03:12:42

标签: mongodb node.js

这是收集会议

{
    "_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) {     
    });
});

问题:结果给了我所有记录,其中channel = 3.这是错误的。

1 个答案:

答案 0 :(得分:9)

尝试

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

因为每个会话集合的项目都包含一个对象“session”,其中包含一个属性“channel”。