我正在尝试检查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);
}
请您检查语法并帮助我使其正常工作?
答案 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}}
]
}
)