Mongodb:包含值且不包含另一个值的数组

时间:2015-02-09 07:04:22

标签: javascript mongodb

我正在尝试检查ON PUT事件,如果数据库中包含属于另一个用户(另一个CardNumber)的相同MobilePhone(或它的9个lat数字)的记录。如果是这样,我不想提交新数据。

我正在尝试使用下面的代码,但它不起作用。如果条件总是如此。 我不确定我是否正确使用了支架。

if(this.MobilePhone !== '' &&
db.mobile.find({$and:[
    {$in:[
        {"mobileuser.MobilePhone":this.MobilePhone.right(9)}, 
        {"mobileuser.MobilePhone":this.MobilePhone}]}, 
    {"mobileuser.CardNumber":{$ne:this.CardNumber}}]}).count() > 0)
{
cancel("MobilePhone is reserved by another user", 403);
}    

请您检查语法并帮助我使其正常工作?

1 个答案:

答案 0 :(得分:0)

似乎$部分是错误的 $ in的语法是

{ field: { $in: [<value1>, <value2>, ... <valueN> ] } }

是否可以使用“$或”代替?

  

....包含相同的MobilePhone(或它的最后9位数字).....

db.mobile.find(
    {$and:[
            {
                $or:[
                        {"mobileuser.MobilePhone":this.MobilePhone.right(9)}, 
                        {"mobileuser.MobilePhone":this.MobilePhone}
                    ]
            }, 
            {"mobileuser.CardNumber":{$ne:this.CardNumber}}
        ]
    }
)