2014-09-25 2 views
0

Я использую mongify для переноса базы данных mysql в mongodb.Миграция с использованием mongify

Делая это, появилось 2 вопроса:

1- Как я могу объявить свой файл перевода для того, чтобы иметь встроенный массив идентификаторов, что ссылки на объекты (которые хранятся в другой коллекции и может быть извлечена через заполнение), а не просто встраивание в объекты json.

2 Встраиваемые объекты могут иметь уникальный идентификатор, поскольку объекты в коопериях делают ?. В других проектах я использовал этот подход для запроса для внедренных объектов, но если этого идентификатора нет, я должен использовать другое поле.

ответ

0

К сожалению, первый запрос с Mongify на данный момент невозможен, для этого требуется собственный скрипт. Я могу дать вам более подробную информацию, если вы хотите отправить мне свой файл перевода (обязательно удалите любые конфиденциальные данные).

Что касается второго номера, встроенный объект получит уникальный идентификатор. Вам не нужно ничего особенного делать.

Надеюсь, что ответит на ваши вопросы.

+0

это возможно также просите о вашей помощи по этому вопросу? его действительно моя последняя надежда! –

+0

Эй, Дэвид, да, не стесняйтесь, напишите мне свой вопрос. –

0

из mongify не представляется возможным, но в MongoDB вы можете преобразовать данные следующим образом:

//find posts has array of objects  
db.getCollection('posts').find({'_tags.0': {$exists: true}}).forEach(function (post) { 
    var items = []; 
    var property = '_tags'; 
    post[property].forEach(function(element){ 
     if(element._id !== undefined){ 
      items.push(element._id); 
     } 
    }); 
    if(items.length>0){ 
     post[property] = items; 
     db.posts.update({_id:post._id},post); 
    } 
}); 

Исходный документ:

{ 
    "_id" : ObjectId("576aa0389863482f64051c81"), 
    "id_post" : 130155, 

    "_tags" : [ 
     { 
      "_id" : ObjectId("576a9efd9863482f64000044") 
     }, 
     { 
      "_id" : ObjectId("576a9efd9863482f6400004b") 
     }, 
     { 
      "_id" : ObjectId("576a9efd9863482f64000052") 
     }, 
     { 
      "_id" : ObjectId("576a9efd9863482f6400005a") 
     } 
    ] 
} 

Заключительный документ:

{ 
    "_id" : ObjectId("576aa0389863482f64051c81"), 
    "id_post" : 130155, 

    "_tags" : [ 
     ObjectId("576a9efd9863482f64000044"), 
     ObjectId("576a9efd9863482f6400004b"), 
     ObjectId("576a9efd9863482f64000052"), 
     ObjectId("576a9efd9863482f6400005a") 
    ] 
}