私は最新流行の流星群を使って流星群に取り組んでいます。 mongoドキュメント配列内のアイテムの位置を変更したい。それを達成するためには、私はを配列から取り出し、$push
index
ポジションのmongoDB documentationでそれを取り出します。
MyCollection.update({_id: my_doc.id},
{
$push:
{
my_array:
{
$each:[my_item.id],
$position:index
}
}
}
)
流星/モンゴは、次のエラーがスローされます。
update failed: MongoError: Can't canonicalize query: BadValue unknown top level operator: $each
私が最初にこのクライアント側を実装しました。私はそれが最小限の制限のために動作しないと仮定した。
このサーバー側を処理するメソッドを記述しましたが、同じエラーが発生します。
このリクエストで何が問題なのですか?流星が$演算子を処理できますか?
EDIT:私はrobomongoに直接挿入しようとした、それが働きました。 Mongoのバージョン、db.version()
戻り
2.6.7を入力* EDIT2:$pull
と$push
で両方、更新は動作します:私は、私は前にチェックしていなかったことを期待していませんでした。しかし、データが実際に更新されても、私はまだエラーが発生します。
*編集:ここではいくつかのサンプルデータです:
{
"_id" : "oSNrpgAAu8BuznvD6",
"name" : "tynhjderjye",
"description" : "",
"notes" : "",
"display_notes" : false,
"keywords" : [
""
],
"owner" : "mA5Y7LBCoRyeSDkaG",
"createdAt" : ISODate("2015-10-27T13:59:06.083Z"),
"createdBy" : "C3i9oj4eapyttHZj6",
"contributors" : [
"C3i9oj4eapyttHZj6"
],
"medias" : [
"TcFqermNY4y5cjBG3",
"dbkNN2rxXJXth8urw",
"jML4JKkRoKxx8sLwu",
"LEWYsnPrXRSH6MPkX"
],
"modifiedAt" : ISODate("2015-11-17T09:35:50.303Z"),
"modifiedBy" : "C3i9oj4eapyttHZj6",
"chunks" : [
"qCCHKJDbdTLEFR5Yt",
"ySiM7dcxvduEM2npj",
"5q46vqrmYttscitiK"
],
"trashed" : ISODate("2015-11-17T09:35:50.303Z")
}
chunks
は私が引く配列my_array
で、あなたが流星のコレクションを作成する場合は、位置index
MongoDBサーバーのバージョンは? – JohnnyHK
'mongo'シェルクライアントで同じコマンドを実行してみてください。 –
@DmytroShevchenko同じコマンドがRoboMongo(私が推測するシェルクライアントに相当)で正常に動作します。 – Billybobbonnet