基于json数组的Mongoose查询
我是node.js新手,在node.js中使用mongoose 模式:基于json数组的Mongoose查询,json,node.js,mongodb,mongoose,Json,Node.js,Mongodb,Mongoose,我是node.js新手,在node.js中使用mongoose 模式: var userSchema = new mongoose.Schema({ username: String, password: String, phone_no : String, email: String, name:String, dob: {type: Date, "default": Date.now}, city:String, locality:{lattitude:Number,longitude:Nu
var userSchema = new mongoose.Schema({
username: String,
password: String,
phone_no : String,
email: String,
name:String,
dob: {type: Date, "default": Date.now},
city:String,
locality:{lattitude:Number,longitude:Number},
sports: [String]
});
样本条目:
"userId": 10,
"username": "shu",
"name": "shubham goyal",
"password": "ahu",
"phone_no": "919357701457",
"email": "shubham2892@gmail.com",
"city": "delhi",
"_id": {
"$oid": "5331dbc243bb59f80a7ed60b"
},
"sports": [
"cricket,football"
],
"dob": {
"$date": "2014-03-25T19:40:50.886Z"
},
"__v": 0
}
我试图提出的问题是:
models.user.find({'sports' : sports_selected},function(err,users) {
if(err) {
console.log("Cannot fetch sports with requested username" + req.user.username);
console.log(err);
}if(!users){
console.log("cannot find specified username" + req.user.username);
}else{
console.log(users.username);
//sport = player.sports;
//sport = ['cricket','football','basketball'];
}
});
我在users.username中没有定义。我想返回所有选择了特定运动的用户,比如“cricket”。我在谷歌上搜索了很多次,但没有找到任何内容。看起来您的示例条目格式不正确。运动项目不应该是这样的:
"sports": [
"cricket,football"
]
您应该像这样保存运动数据:
"sports": [
"cricket","football"
]
如果你把板球和足球放在同一条线上,mongo就不能把它们区分为不同的运动
另外,用户应该是一个数组,因此需要循环遍历该数组。假设您有一个体育用户被选为板球,那么您可以打印用户[0]。用户名非常感谢兄弟\