2013-08-06 3 views
1

Так что я пытаюсь вставить новое поле в MongoDB, и пока он будет принимать мою Javascript переменную в качестве данных, он не будет принимать его как новое имя поля:Вставить поле MongoDB, которое является переменной javascript?

function appendInformation(question, answer) { 
    Sessions.update({ _id: Id }, { question : answer }); 
} 

Он вставляет правильный ответ , но занесен в документ, как question: {answer} не {question} : {answer}

ответ

4

Вы должны использовать $set обновить Session документ с новым полем.

function appendInformation(question, answer) { 
    var qa = { }; 
    qa[question] = answer; 
    Sessions.update({ _id: Id }, { $set : qa }); 
} 

$setdocumentation

> db.so.remove() 
> var qa={"question 1" : "the answer is 1"}; 
> db.so.insert(qa); 
> db.so.find() 
{ "_id" : ObjectId("520136af3c5438af60de6398"), 
       "question 1" : "the answer is 1" } 
> var qa2={"question 2" : "the answer is 2"}; 
> db.so.update({ "_id" : ObjectId("520136af3c5438af60de6398")}, { $set : qa2 }) 
> db.so.find() 
{ "_id" : ObjectId("520136af3c5438af60de6398"), 
       "question 1" : "the answer is 1", 
       "question 2" : "the answer is 2" } 
+0

Nice! Не знал этого, только начал работать с nosql пару недель назад. +1. – tymeJV

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