2017-03-16 7 views
0

それがコレクションからレコードを返すのクエリの下に実行されている:私はまた、C#で試してみましたし、同じ結果だ結果を返すクエリは、 DocumentDB

SELECT * 
FROM Families f 
WHERE f.id = "AndersenFamily" 

query = client.CreateDocumentQuery<Family>(collectionLink, new SqlQuerySpec 
      { 
       QueryText = "SELECT * FROM Families f WHERE (f.id = @name)", 
       Parameters = new SqlParameterCollection() { 
          new SqlParameter("@name", "AndersenFamily") 
        } 
      }); 

「家族」の意義は何を? ASFAIKそれはdb名、コレクション名、または任意のドキュメント名ではないなぜ結果を返すのですか?

私はまた、 "家族"を別の言葉で置き換えようとしましたが、私はまだ結果を得ました。

あなたはDocumentDBは、SQL構文を使用して照会をサポートしていますが、それは実際のNoSQLストレージであるため、テーブルの概念が存在しない場合、ここでのコードhttps://docs.microsoft.com/en-us/azure/documentdb/documentdb-sql-query

+0

C#からクエリを実行しているとき、またはプレイグラウンドでのみクエリが実行されていますか?それが遊び場にある場合、それはおそらく遊び場特有の側面であり、C#とは無関係です。 (私は強く、これはC#または.NETのどちらの方法とも正直ではないことを強く疑う。) –

+0

@SkeetそれはC#コードで書かれている。私は質問を更新しました。 – JerryGoyal

+0

Hmm。プレイグラウンドでの振る舞いを考えると、私はまだこれが実際にDocumentDbの質問であり、.NETとC#の知識は無関係だと思っています。ドキュメントは、正直であることは非常に明確ではありませんが、ほとんどの場合、FROM句はオプションです。 –

答えて

1

を見ることができます。

DocumentDBでSQLクエリを構成する場合、FROM句(オプション)specifies the sourceには、コレクション名とエイリアスを含めることができます。

例の場合、Familiesがコレクション名として動作し、fがエイリアスとして動作しています。単一のコレクションに対してクエリを作成する場合(最も一般的なケース)、コレクション名を指定する必要はありません。コレクションコンテンツ(ドキュメント)への参照は、次のように単純に使用できます。

SELECT * FROM f WHERE f.id = "AndersenFamily"

私の意見はSQLのシナリオから来る人々はクエリ構造に関係することができるようにFamilies参照が行われていることである(表を参照するように見えます)。

関連する問題