以下是用于在一个国家/地区显示当前锦标赛的架构:
var TournamentSchema = new mongoose.Schema({
name: String,
location: String,
googlelink: String,
description: String,
format: String,
date: Date
closedate:Date
type:String
});
该网页还有电子商务网站中的过滤器。如果假设我从url获得一个查询,例如: https://www.example.com/format=5v5%7v7&&location=hyd&&ahmedabad
我需要查询5v5或7v7格式的比赛,以及Hyd和Ahmedabad的比赛。
我需要编写通用查询,因为我不知道地点和格式的数量。
我不知道该怎么做。有人可以帮助我吗?
答案 0 :(得分:1)
以下是我编写的使用mongoose $或。
的查询示例Event.find( { $or: [{ joiners: req.user._id }, { creator: req.user._id}] } )
.populate('creator')
.exec(function(err, goevent){
if(err){
console.log(err)
} else {
res.json(goevent)
}
})
基本上在您的查询参数{}中,您可以传递以下内容:
{ $or: [ { query: one}, {query: two} ] }
像这样:
Model.find({ $or: [ { query: one}, {query: two} ] }, function(err, data){
//err & success handlers
}
一旦你明白了,你也可以使用一堆其他逻辑运算符,比如$and
。
如果要查询的对象是嵌套的,则只需执行'some.property'
(使用点表示法访问对象时使用字符串语法)