Я работаю над написанием DocumentManager
для проекта Python mongo-connector
. При первом запуске соединителя все мои данные импортируются из MongoDB в базу данных графиков (Neo4J) функцией bulk_upsert
. Однако данные имеют некоторые зависимости между собой, и я хотел бы, чтобы одна коллекция была импортирована до другой. Конкретно, я бы хотел, чтобы app.songs
был импортирован до app.playlists
, поскольку последний имеет грани графа к первому. В настоящее время mongo-connector
делает все импорт без видимого порядка. Есть ли способ указать заказ? Если нет, что я могу сделать для обеспечения порядка?Укажите порядок импорта в mongo-connector
ответ
Если вы используете MERGE
Cypher statement вместе с ограничением уникальности, порядок, в котором импортируются коллекции, не имеет значения.
Например:
Допустим, у вас есть данные, что выглядит следующим образом: коллекция
плейлистам
{
"_id': "playlist1",
"songIds": ["song1, song2, song3"]
}
коллекция песни
{
"_id": "song1",
"title": "Redemption Song",
"artist": "Bob Marley"
}
Каждый плейлист имеет уникальный _id
, и каждая песня имеет уникальный _id
, на который ссылается документ плейлистов.
В Cypher заявления для обработки этих документов было бы что-то вроде этого:
Для списков воспроизведения:
MERGE (p:Playlist {_id: {_id}})
UNWIND songIds AS songId
MERGE (p)<-[:IN_PLAYLIST]-(s:Song {_id: songId})
Для песен:
MERGE (s:Song {_id: {_id}})
SET s.title = {title},
s.artist = {artist}
MERGE
по существу "получить или создать". Здесь мы используем MERGE
с идентификаторами песни, поэтому, если узел не существует с указанным идентификатором песни, он будет создан. Если он уже существует, он будет привязан к указанной переменной.
Обязательно создать ограничение уникальности:
CREATE CONSTRAINT ON (p:Playlist) ASSERT i._id IS UNIQUE;
CREATE CONSTRAINT ON (s:Song) ASSERT s._id IS UNIQUE;
- 1. Порядок импорта в C#
- 2. Укажите порядок заголовков в NSMutableURLRequest
- 3. Укажите порядок слайдов в карусели?
- 4. Укажите корневой путь для импорта?
- 5. Порядок импорта страниц JSP
- 6. Укажите порядок для запроса вручную
- 7. Укажите порядок проверки ограничений в запросе SQL
- 8. Укажите порядок инициализации переменной в Scala
- 9. Задачи настройки SAP - порядок импорта
- 10. Пути python и порядок импорта
- 11. ATG runAssembler - порядок импорта модулей
- 12. Webpack/Angular 2: укажите порядок стилей
- 13. Python Jupyter Notebook: укажите порядок выполнения ячейки
- 14. Укажите порядок тестов nunit, выполняющихся на teamcity
- 15. SQL Укажите порядок набора результатов ORDER BY
- 16. Укажите порядок перестановки с использованием целого числа?
- 17. IntelliJ не уважая порядок импорта на «Оптимизация импорта»
- 18. Укажите адрес файла CSV для импорта в Neo4j
- 19. SCSS @ порядок обработки импорта с webpack
- 20. Как MEF определяет порядок его импорта?
- 21. HTML порядок импорта CSS ссылка и наиважнейшая
- 22. Укажите порядок/расположение виджета swt в составном объекте?
- 23. Лучший способ получить конечный пользователь Укажите порядок сортировки в Rails
- 24. Укажите порядок строительства/разрушения статических местных жителей в разных аксессорах
- 25. командный файл - укажите порядок выполнения sql-файлов в
- 26. Укажите порядок выключения контекста верблюда с несколькими контекстами
- 27. Sinatra: укажите порядок поиска маршрутов при использовании нескольких приложений?
- 28. Как определить порядок импорта пространства имен в [R]
- 29. Сохраняется ли порядок импорта ресурсов в Spring XML?
- 30. Укажите порядок переданных функций функций обратного вызова, используя привязку
Я не думаю, что это помогло бы мне, потому что информация о каждом 'song' в' playlists' не достаточно, чтобы описать всю песню. – Ali