2015-05-05 3 views
0

Я новичок в базе данных NoSQL и использую версию Mongo 2.4.12. У меня есть коллекция, названная как «пользователь», и я хотел добавить новое поле с именем «useremail». Не могли бы вы сообщить мне, как я могу это сделать из командной строки/оболочки?Как добавить новое поле в коллекцию в MongoDB (NoSQL)

> db.user.find({username :"John"}).pretty(); 
{ 
     "_id" : "ajd233d-u980-4000-92b6-5353e9602502", 
     "username" : "John", 
     "password" : "John", 
     "firstname" :"John", 
     "lastname" : "Rogers", 
     "enabled" : true, 
     "employeeauth" : [ 
       { 
         "employeeId" : "a2fg190-b50d-14k2-aan0-ebb7298fa2b7", 
         "authorities" : [ 
           "DEVELOPER", "TESTER", "CONSULTANT" 
         ] 
       } 
     ], 
} 

Я хотел бы добавить новое поле "USEREMAIL", так что результат шоу приходят так:

> db.user.find({username :"John"}).pretty(); 
    { 
      "_id" : "ajd233d-u980-4000-92b6-5353e9602502", 
      "username" : "John", 
      "password" : "John", 
      "firstname" :"John", 
      "lastname" : "Rogers", 
      "useremail": "[email protected]", 
      "enabled" : true, 
      "employeeauth" : [ 
        { 
          "employeeId" : "a2fg190-b50d-14k2-aan0-ebb7298fa2b7", 
          "authorities" : [ 
            "DEVELOPER", "TESTER", "CONSULTANT" 
          ] 
        } 
      ], 
    } 

ответ

0

здесь вы идете db.user.update({username:"John"},{$set:{"useremail":"[email protected]"}})

{username:"John"} является запрос и {"useremail":"[email protected]"} является обновление.

если поле useremail не существует в документе, оно будет вставлено. если он уже существует, значение будет заменено.

reference

+0

Привет - Это, кажется, не работает, как ожидалось, она перекрывает все мои даты и давая: > db.user.update ({имя пользователя: "John"}, { "USEREMAIL": "john.rogers @ test.com "}) > db.user.find ({имя пользователя:" John "}). pretty(); { "_id": ObjectId ("54fcbae626f96d47769f86bb"), "USEREMAIL": "[email protected]" } –

+0

@ user4567570 Пожалуйста, смотрите редактирование. используйте '{$ set: {" useremail ":" [email protected] "}}' для обновления документа – user2829759

+0

да, теперь работает. Спасибо. Это красота манго. Просто мне нужно вернуть все мои данные для предыдущего неправильного запроса на обновление документа. –

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