2014-11-27 5 views
0

Это должно быть easy..but я не могу найти ответ ...json - добавить сразу два элемента на одном и том же узле? (Или в несуществующем узле)

var crit = { 
     'webshopId': webshopId, 
     'type': 'product'} 
    }; 

мне нужно добавить sku.regularPrice = {$ GTE: parameters.minPrice} на крит;

так ... если я

crit.sku.regularPrice = { $gte : parameters.minPrice}; 

я буду получать исключение: TypeError: Невозможно установить свойство «» regularPrice неопределенной

это потому, что не ы существует на крит.

Итак, давайте создадим ...

crit.sku = {}; 

Это принесет мне ип нежеланный результат ... как это ...

{ webshopId: 'rawDemo', 
    type: 'product', 
    sku: { regularPrice: { '$gte': '3' } } } 

Таким образом, дочерний узел был создан :(Мне действительно нужно: sku.regularPrice: {$ GTE: 3}

Итак, мой ожидаемый результат должен быть ...

{ webshopId: 'rawDemo', 
    type: 'product', 
    sku.regularPrice: { '$gte': '3' } } 

в переменной крита. Жестко закодированное представление может быть ...

var crit = { webshopId: 'rawDemo', 
    type: 'product', 
    sku.regularPrice: { '$gte': '3' } } 

любой ключ?

+0

Просто чтобы прояснить, что вам нужно имя атрибута в буквальном смысле включают в себя. в этом? – Prisoner

+0

Мой плохой, извините ... Я только что редактировал вопрос для лучшего понимания. В основном мне нужно добавить атрибут.subAttribute –

ответ

3

Если я правильно понял ваш вопрос, вы не можете использовать точечную нотацию для доступа к переменной, которую хотите. Вам нужно:

var crit = { 
    'webshopId': webshopId, 
    'type': 'product'} 
}; 

crit['sku.regularPrice'] = { $gte : parameters.minPrice}; 

Что бы привести:

{ 
    webshopId: 'rawDemo', 
    type: 'product', 
    'sku.regularPrice': { '$gte': '3' } 
} 
+0

Awesome !!! тывм !!! и я думаю, что сегодня я узнал что-то новое. нападает на возможность! –

Смежные вопросы