Как проверить, существует ли атрибут в документе mongodb в функции forEach?

#mongodb

#mongodb

Вопрос:

Я использую MongoDB 2.6.2. Мне нужно проверить forEach name , существует ли поле в выбранном документе.

 db.testData.find(...).forEach(function(x){
// insert code here
})
 

Как проверить внутри forEach функции x , содержит ли она поле name или нет?

Комментарии:

1. Вы также можете просто запрашивать документы, в которых нет поля, используя $exists . docs.mongodb.org/manual/reference/operator/query/exists

Ответ №1:

Mongo shell — это оболочка JavaScript, поэтому поддерживается большинство стандартных методов JavaScript. Вы можете проверить, существует ли свойство, как вы бы сделали для любого обычного объекта в JavaScript — с помощью метода hasOwnProperty():

 db.testData.find({}).forEach(function(x){
    if (x.hasOwnProperty('name')) {
        // Do something
    }
})