У меня есть две коллекции Node
и Edge
.Распечатка номера картографирования документов, а не идентификаторов
У меня есть два поля source
и target
, хранящие идентификаторы узлов и с которыми они связаны.
идентификаторы узлов (как хранится я node.id
, edge.source
и edge.target
) не очень удобный для чтения, так что я хочу сделать, это напечатать набор узлов и множество ребер, но вместо того, чтобы печатать их идентификаторы, я хотите напечатать индекс, начиная с 1.
Так что, если у меня есть 3 узлов, мой результат должен быть
Набор узлов = {n1, n2, n3}
и если я имеют два ребра w здесь первый связан между n1 и n2, а вторая связана между n2 и n3, Вы хотите вывести
множество ребер = {e1 = (n1, n2), е2 = (n2, n3)}
Если бы я не забочусь об изменении идентификаторов к некоторым более читаемым индексам, я мог бы напечатать края с
edges = edges.map((edge, index) => 'e' + (index + 1) + ' = (' + edge.source + ', ' + edge.target + ')');
console.log('Set of edges = {' + edges.join(', ') + '}');
и узлы с
nodes = nodes.map((node, index) => 'n' + (index + 1));
console.log('Set of nodes = {' + nodes.join(', ') + '}');
Я предполагаю, что мне нужно создать хэш-отображение узлов перед печатью ребер, поэтому я уверен, что исходный идентификатор и целевой идентификатор каждого края будут переведены в правильный номер/индекс узла.
Редактировать
Узлы и ребра очень просты
const nodeSchema = new Schema({});
const edgeSchema = new Schema({ source: Schema.Types.ObjectId, target: Schema.Types.ObjectId});
Таким образом, они не занимать какую-либо другую информацию, чем автоматически созданный _id
и края хранить ссылки на узлы, используя узлы _id
стоимость.
Вы можете включать в пример 'Node' и' Edges' на вопрос? – guest271314
_ «Надеюсь, что этого достаточно». Можете ли вы предоставить адекватный текст «Узел» и «Кромки» в вопросе для получения ожидаемого результата '{e1 = (n1, n2), e2 = (n2, n3)}'? И поделиться тем, что вы пытались решить проблему? – guest271314