2015-11-27 1 views
0

У меня есть документ, который имеет атрибут ObjectId. Например, поле якоря в коде ниже:MongoDB update Поле ObjectId

{ "__v" : 0, "_id" : ObjectId("5654d896481c5186ddaf4481"), "anchor" : ObjectId("565480e5481c5186ddaf446c"), "base_url" : "http://example.com"} 

Я видел документацию here, но не ясно, как обновить ObjectId поле ссылки. Я хочу, чтобы эта ссылка просто указывать на другой anchor документа, можно просто поместить ObjectId как строку, как это:

db.categories.update(
    { }, 
    { 
     $set {anchor: "5654d47a481c5186ddaf4479"} 
    }, 
    { multi: true } 
) 
+0

Это не связано с вашим вопросом, но я думаю, вы хотите, чтобы ваше обновление было следующим: '{$ set: {anchor: ...}}'. В противном случае он удалит свойство 'base_url'. –

+0

Как будет выглядеть ваш обновленный документ? – styvane

+0

Да, я добавил набор :) – Sanandrea

ответ

5

Вы можете использовать ObjectId():

db.categories.update(
    { }, 
    { 
     $set: { anchor: ObjectId("5654d47a481c5186ddaf4479") } 
    }, 
    { upsert: true } 
) 

https://docs.mongodb.org/manual/reference/object-id/#core-object-id-class

Оболочка mongo предоставляет класс обтекателя ObjectId() для генерации нового объекта ObjectId, ...

+0

Он сделал трюк спасибо! – Sanandrea

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

  • Нет связанных вопросов^_^