0

ユーザーコレクションの各ドキュメントは次のようになります。 access: { 123456789012345678901234: 3, 123456789012345678901235: 2, 123456789012345678901234: 1, 123456789012345678901236: 0 }

access.1234567890123456789012340より大きいすべてのレコードを検索しようとしています。これが、関数の作成方法です。(値123456789012345678901234は、パラメーターcompanyidの関数に渡されます)

findUsersInCompany: function(companyid, callback) {
    base.db.users.find({ "access." + companyid: { "$gt": 0 } }, function(err, usersList) {
        if( err ) callback(err);
        else if( _.isEmpty(usersList) ) callback(1016);
        else callback( null, usersList );
    });
}

ただし、「予期しないトークン+」というエラーが表示されます。

これを機能させる方法についてのヘルプは本当に役に立ちます。

4

1 に答える 1

2

find次のように、呼び出しの前にセレクターを構築する必要があります。

var selector = {};
selector["access." + companyid] = { "$gt": 0 };        
base.db.users.find(selector, function(err, usersList) {
    ...
});
于 2012-09-05T12:15:12.067 に答える