我有一个用于组织黑客马拉松事件的应用程序,这是mongodb架构
{
"_id": "cZpRg4Qa8JPRAJojE",
"lat": "-1.981388262628872",
"lng": "36.29487934112549",
"eventownernumber": "0800123456",
"eventownernames": "Kraufe",
"eventtitle": "first test",
"eventtime": "05:02",
"invited": "0",
"eventduration": "5",
"eventtype": "private",
"eventcategory": "hackathon",
"eventstatus": "11",
"eventoriginalid": "0",
"eventjoinernumber": "0",
"eventjoinernames": "0",
"eventjoindate": "0",
"eventleavedate": "0",
"createdAt": {
"$date": "2016-10-27T16:33:57.365Z"
}
}
我正在地图上显示黑客马拉松事件。
我想使用此条件显示事件。用户使用电话号码注册。
**
- 显示邀请的所有活动
- 显示我创建的所有活动
- 显示我的号码不是其中之一的所有公共活动(请忽略我自己创建的公共活动)
醇>
**
这是我写的查询
Events.find({
{eventownernumber: '0800123456',eventstatus:11 },
{invited:'0800123456',eventstatus:11},
{eventtype:'public',eventownernumber:{$nin:['0800123456']},eventstatus:11 }
});
在eventstatus:11
中,11
表示有效的黑客马拉松事件。
当我运行我的查询时,我得到意外的字符错误(错误指向我的一个查询行);
我该如何更正我的查询?。
答案 0 :(得分:0)
根据我的理解,如果其中一个条件通过,您想要显示该事件。因此,您可以尝试使用$or运算符:
Events.find({
$or: [
{eventownernumber: '0800123456',eventstatus:11 },
{invited:'0800123456',eventstatus:11},
{eventtype:'public',eventownernumber:{$ne:'0800123456'},eventstatus:11 }
]
});