猫鼬 (mongodb) return 布尔值 query.exec?
mongoose (mongodb) return boolean query.exec?
我尝试使用 mongoose (mongoDB) 创建一个库以用于 node.js。
在我的图书馆中,我只想检查用户是否 is_admin(组管理员)。
这是我的模型:
var mongoose = require('mongoose');
module.exports = mongoose.model('UsersGroups',{
user_id: String,
group_id: String
});
这是我的图书馆:
var UsersGroups = require('../models/users_groups');
is_admin = function(userid)
{
console.log('USERID : '+userid);
var query = UsersGroups.find({'user_id': userid});
query.select('user_id');
query.where('group_id').equals('54d2264ed9b0eb887b7d7638');
return query.exec();
}
module.exports = is_admin;
我要查询 return true
或 false
.
我这样称呼图书馆:
var is_admin = require('../library/mylib.js');
...
if (is_admin(group.user_id))
{
console.log('IS_ADMIN');
}
else
{
console.log('NOT_ADMIN');
}
有人可以指导我吗?
query.exec()
return Promise 不是布尔值
使用 mongoose Schema 和 Model 将提供更好的功能;
示例用户模型
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
name: { type: String, required: true, trim: true }
// set user types as enumeration
type: { type: String, enum: ["admin", "user", "guest"], required: ture, default: 'user' }
});
var User = mongoose.model('User', UserSchema);
User.prototype.isAdmin = function(){
return this.type === "admin";
}
module.exports = User;
在控制器上
var user = require('model/user');
user.findById("54d2264ed9b0eb887b7d7638", function(err, user){
if(err)
return console.error(err.stack);
if(!user)
return console.error("User not found!");
if(!user.isAdmin())
console.log("User is not admin");
else
console.log("User is admin");
});
如果您想与用户组核对,您可以根据需要更改isAdmin
功能
你可以运行这个查询
UsersGroups.find({'user_id': userid, 'group_id': '54d2264ed9b0eb887b7d7638'}).count().exec();
它将找到匹配对 - return 1 如果它在 javascript 中为真。如果它不存在,它将 return 0 这是虚假的,所以你将能够在 if statements
中使用它
我尝试使用 mongoose (mongoDB) 创建一个库以用于 node.js。 在我的图书馆中,我只想检查用户是否 is_admin(组管理员)。
这是我的模型:
var mongoose = require('mongoose');
module.exports = mongoose.model('UsersGroups',{
user_id: String,
group_id: String
});
这是我的图书馆:
var UsersGroups = require('../models/users_groups');
is_admin = function(userid)
{
console.log('USERID : '+userid);
var query = UsersGroups.find({'user_id': userid});
query.select('user_id');
query.where('group_id').equals('54d2264ed9b0eb887b7d7638');
return query.exec();
}
module.exports = is_admin;
我要查询 return true
或 false
.
我这样称呼图书馆:
var is_admin = require('../library/mylib.js');
...
if (is_admin(group.user_id))
{
console.log('IS_ADMIN');
}
else
{
console.log('NOT_ADMIN');
}
有人可以指导我吗?
query.exec()
return Promise 不是布尔值
使用 mongoose Schema 和 Model 将提供更好的功能;
示例用户模型
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
name: { type: String, required: true, trim: true }
// set user types as enumeration
type: { type: String, enum: ["admin", "user", "guest"], required: ture, default: 'user' }
});
var User = mongoose.model('User', UserSchema);
User.prototype.isAdmin = function(){
return this.type === "admin";
}
module.exports = User;
在控制器上
var user = require('model/user');
user.findById("54d2264ed9b0eb887b7d7638", function(err, user){
if(err)
return console.error(err.stack);
if(!user)
return console.error("User not found!");
if(!user.isAdmin())
console.log("User is not admin");
else
console.log("User is admin");
});
如果您想与用户组核对,您可以根据需要更改isAdmin
功能
你可以运行这个查询
UsersGroups.find({'user_id': userid, 'group_id': '54d2264ed9b0eb887b7d7638'}).count().exec();
它将找到匹配对 - return 1 如果它在 javascript 中为真。如果它不存在,它将 return 0 这是虚假的,所以你将能够在 if statements
中使用它