2016-07-22 1 views
0

愚かな質問をおかけして申し訳ありません。私はneo4jデータベースに2種類のノード、すなわちRecipesMeal_Typeを持っています。私はneo4jで2つのタイプのノード間のすべての関係を結ぶサイファークエリを実行しています。クエリは特別なものではなく、200ノードの制限を持つリレーションシップを返すデフォルトのクエリです。neo4j - 関係クエリの結果に1つのタイプのすべてのノードを持ち込む方法

MATCH()-[r]->() RETURN r LIMIT 200

それは罰金を実行しています。しかし、残りの結果にかかわらず、結果として少なくともすべてのMeal_Typesノードが必要です。今すぐのうち3(時には再実行クエリで4,5)を返しています。

答えて

1

まず、Meal_Typeノードのすべてをフェッチしてから、その結果で対応するRecipeノードのセットをフェッチする必要があると思います。

ここに私が話している事例があります。あなたが関心のあるものをいくつか持っていない限り、さまざまな食事タイプをすべて取得します。そして、それらの食事タイプでは、対応するレシピセット(200〜= 19 * 11)のサンプリングを返します。

// match meal types 
match (mt:Meal_Type) 
with mt 
// find a sampling of the the corresponding recipes. 
match (mt)<-[OF_TYPE]-(r:Recipe) 
return mt, collect(r)[0..18] 
+0

'マッチ(Meal_Type MT)'またはAMを私は何かを欠いている? –

0

本当に?私は前の質問で昨日thatと答えました。それは単なるバリエーションです。

これは、ノードラベルが関係を並べ替え、トリックを行う必要があります。mtマッチ(MT) `と - >`試合(MT:Meal_Type):

MATCH (n)-[r]-() 
RETURN r 
ORDER BY head(labels(n)) 
関連する問題