有没有更常规的方式来检查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/

10-09 08:12