有没有更常规的方式来检查MongoDB文档中是否存在属性和子属性?
现在,我正在这样做,以确保当其中一个属性或整个文档不存在时,它不会出错。
//Check to see if the document exists
if(Donate.findOne({'debit.id': debitID})) {
//Check to see if the document has the property "credit"
if(Donate.findOne({'debit.id': debitID}).credit){
//Check to see if the object credit has the property sent
if(!Donate.findOne({'debit.id': debitID}).credit.sent){
doSomething();
}
}
}
!Donate.findOne({'debit.id': debitID}).credit.sent
是查看是否将send设置为true。如果是我不想执行doSomething();
最佳答案
试试这个:
Donate.findOne({'debit.id': debitId, 'credit.sent': {$exists: true}});
尽管我不确定您要做什么,但由于您的代码似乎正在检查属性“credit”和“credit.sent”是否不存在。如果这是您要查找的内容,则只需将
$exists
条目更改为上面的false
。关于MongoDB检查属性是否存在(以及子属性),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26412318/