我正在开发一个Mongo数据库,我需要用户能够指定不可用的日期。我从这个结构开始:
{
"_id": "demo-spe",
"SC": [ { "SS": 14, "SA": [ 2, 3, 5 ] } ],
"SU": [
{ "IY": 2013, "IM": 12, "ID": 30, "H0": 0, "N0": 0, "H1": 23, "N1": 59 },
{ "IY": 2013, "IM": 12, "ID": 31, "H0": 0, "N0": 0, "H1": 23, "N1": 59 }
]
}
使用此结构,如果我想知道哪个用户在某个特定日期可用,也就是说,"SU"
数组不应该包含与IY:(year)
匹配的文档,IM:(month)
和ID:(day)
。我真的迷失了$and
和$nin
,有人可以引导我吗?
谢谢,抱歉noob问题和非描述性字段! :)
答案 0 :(得分:0)
您可以使用$elemMatch
和$not
的组合来执行此操作。 $elemMatch
匹配同一数组元素中的多个字段,$not
对表达式执行逻辑NOT:
db.test.find({SU: {$not: {$elemMatch: {IY:2013, IM:12, ID:29}}}})