Mongoose Найти и обновить _id

1

Я пытался вставить имя в свой массив "data_stream_map" схемы, найдя два параметра,

Следующее,

var query = {
        '_id': new ObjectId("594261a0ea2d89001c851424"),
        'inputs.name':  "name1"
    };

    return WFWorkflowModel.findOneAndUpdate(query, {$addToSet: {'inputs.$.data_stream_map': "121_name1"}}).then(function (result) {
        return true;
    }, function (error) {
        console.error("WFEditor micro service - update dataStream.");
        return error;
    });

Ничто в Интернете не работало со мной. Но когда дело доходит до Robomongo 0.9.0, это работает,

db.getCollection('wfcomponents').findOneAndUpdate({
        _id:  ObjectId("594261a0ea2d89001c851424"),
        'inputs.name':  "name1"
    }, {$addToSet: {'inputs.$.data_stream_map': "120_name1"}})

Документ мангуста следующим образом,

{
    "_id" : ObjectId("594261a0ea2d89001c851424"),
    "key" : "task",
    "description" : "",
    "__v" : 0,
    "updated" : ISODate("2017-06-12T07:08:58.462Z"),
    "created" : ISODate("2017-06-12T07:08:44.079Z"),
    "gridLocation" : {
        "y" : 1,
        "x" : 7
    },
    "inputs" : [ 
        {
            "name" : "name1",
            "data_stream_map" : [ 

            ]
        }
    ]
}

Используемая версия мангуста - "mongoose": "^ 4.6.5", я не знаю, может ли кто-нибудь помочь мне преодолеть эту проблему? Я реферировал множество вопросов, но все еще не решил.

Теги:
mongoose
mongoose-schema

2 ответа

0
Model.findOneAndUpdate(query,update,{new:true}).exec(function(err,docs){
        console.log(docs)
})
//your code is correct , just lost the options{new:true},which will return the updated doc but not the found doc
  • 2
    Хотя этот код может ответить на вопрос, предоставление дополнительного контекста относительно того, как и / или почему он решает проблему, улучшит долгосрочную ценность ответа.
0

1.) обновить Robomongo до 1.0, у него есть обновления в системе, которые необходимы. 2.) ознакомьтесь с этой ссылкой, которую я предоставил. Не уверен, что ваш вопрос является дубликатом, но у этого есть хорошие ответы, и я думаю, что это относится к вашей проблеме, и быстрый совет, который вы не можете обновить в mongodb, вам нужно удалить и создать снова (объяснено в предоставленной ссылке). Надеюсь, я правильно прочитал вопрос, удачи.

PS Если вы просто пытаетесь запросить ввод данных, убедитесь, что ваши файлы правильно связаны, т.е. Вам требуются все ваши модули. Если у вас есть этот набор, mongoose использует find, findOne, findById, где. Ссылки предоставляются. Опять надеюсь, что он правильно ответит на вопрос, не уверен, чего вы пытаетесь достичь.

Как обновить _id одного документа MongoDB?

http://mongoosejs.com/docs/models.html

http://mongoosejs.com/docs/queries.html

  • 0
    да, конечно, попробую это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню