2017-11-27 12 views
1

私はMongo DBのバージョン3.6を使用していますが、mongoシェルを使用しています。私はMacOS Sierra上で実行しています。私は、この複数行のクエリで多くの悲しみを感じています。私はSublime TextからMongo Shellにそれをコピーして貼り付けています。Mongo DBシェル - マルチラインクエリが機能しない

は[OK]を、ので、ここでのクエリです:

db.submissions.aggregate([ 
    { 
     "$match": { 
      "FieldValues.Value": "Craig" 
     } 
    }, 
    { 
     "$lookup": { 
      "from": "aliases", 
      "localField": "FieldValues.Name", 
      "foreignField": "Fields.Field", 
      "as": "R" 
     } 
    }, 
    { 
     "$unwind": "$R" 
    }, 
    { 
     "$unwind": "$R.Fields" 
    }, 
    { 
     "$unwind": "$FieldValues" 
    } 
]) 

それでは、私はエラーを取得するときの組み合わせを介して実行させ、そして私がいないとき

1)は、クエリたままを実行します、これはシェルで何が起こるかです:

> db.submissions.aggregate([ 
... { 
... "$match": { 
... "FieldValues.Value": "Craig" 
... } 
... }, 
... { 
... "$lookup": { 
... "from": "aliases", 
... "localField": "FieldValues.Name", 
... "foreignField": "Fields.Field", 
... "as": "R" 
... } 
... }, 
... { 
... "$unwind": "$R" 
... }, 
... { 
...  "$unwind": "$R.Fields" 
... }, 
... { 
... 
Display all 172 possibilities? (y or n) 
... wind": "$FieldValues" 
2017-11-27T09:46:39.650-0500 E QUERY [thread1] SyntaxError: missing : after property id @(shell):22:6 
> } 
2017-11-27T09:46:39.652-0500 E QUERY [thread1] SyntaxError: expected expression, got '}' @(shell):1:0 
> ]) 

私は最後の行は、私の現在の「エントリーポイント」(私はそれのためのより良い名前を考えることができない)であることを指摘すべきです私のカーソルは「])」の最後にあります。

2)最後の "$ unwind"なしでクエリを実行します。

すべて動作します。

3)最後の "$ unwind"を1行で実行します。

これが意味:

{"$unwind": "$FieldValues"} 

はその後、すべての作品。

結論/質問

ので、WTF?なぜこの最後の "$ unwind"を使ってこのクエリをきれいに貼り付けると、Mongo Shellが怒っているのですか?

また、問題を引き起こすのは「$ unwind」自体ではないことを指摘しておきます。私はそれを貼り付ける際に、同様のエラーが発生するパイプラインに置かれた任意の追加のクエリ

+1

バージョン間で変更があってもクエリ文字列の最大長が不明な場合は、このリンクを参照してください。https://stackoverflow.com/questions/13188463/is-there-a-length-limit- mongo-queries-to-field-values-in-mongo-queries – SteveB

答えて

1

mongoシェルからのこの反応:。

Display all 172 possibilities? (y or n) 

あなたのコピーでタブ文字を持っていることをほのめかしているようですテキスト。

タブの代わりにインデント用のスペースを使用してタブ文字を削除します。

+0

ええ、これはかなり大変でした。より正確に言えば、問題はタブとスペースの使用が一貫していないため、Sublimeの自動フォーマットの結果、クエリの半分をコピーしていたためです。私が一貫してすべてのタブを使用した場合、それは機能しました。 – user2223059

関連する問題