MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Не може да се актуализират данните в mongodb

Вашата update твърдението е неправилно, има неправилно поставени аргументи - поставяте множество $set операции и опции като различни параметри на метода за актуализиране; те трябва да бъдат под отделни определени параметри за актуализиране. Правилният синтаксис на Node.js е:

update(selector, document, options, callback)

където selector е обект, който е селектор/заявка за операцията за актуализиране, document също е обект, който е актуализиращият документ и накрая options обект, който по подразбиране е null и има незадължителните настройки за актуализиране.

Ето какво правите

update(selector, document, selector, document, options, options, callback)

В който mongo актуализира колекцията, като използва първите два параметъра като правилни и естествено извежда грешката

защото сте посочили твърде много неправилни параметри.

Освен това имате неправилно използване на позиционния оператор. Трябва да е част от документа, който ще се актуализира, а не в заявката.

За правилно внедряване следвайте тази актуализация

db.getCollection('profiles').update(
    /* selector  */
    {
        "_id": ObjectId("57a9aa24e93864e02d91283c"),
        "ratings.round": 1
    }, 
    /* update document */
    {
        "$set": {
            "presentRound": 2,
            "interviewStatus": "in process",
            "scheduleInterviewStatus": false,
            "ratings.$.roundStatus": "selected"    
        }
    },
    /* optional settings */
    { upsert: true, multi: true }
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoError:не може да промени _id на документ

  2. Управление на MySQL, MongoDB и PostgreSQL с ChatOps от Slack

  3. Template Render не предава обобщена променлива на pymongo към шаблон

  4. Вмъкване на обект momentjs в Meteor Collection

  5. Съхранявайте изображение в MongoDB с помощта на Node.js/Express и Mongoose