Güncel meteor paketiyle bir meteor uygulamasında çalışıyorum. Bir mongo belge dizisi içindeki bir öğeyi yeniden konumlandırmak istiyorum. Bunu başarmak için $pull
dizinin dışına ve $push
konumuna göre mongoDB documentation'a göre.
MyCollection.update({_id: my_doc.id},
{
$push:
{
my_array:
{
$each:[my_item.id],
$position:index
}
}
}
)
Meteor/Mongo aşağıdaki hatayı atar:
update failed: MongoError: Can't canonicalize query: BadValue unknown top level operator: $each
Önce bu istemci tarafında uyguladı. Minimongo sınırlamaları nedeniyle işe yaramadığını düşündüm.
Bu sunucu tarafını işlemek için bir yöntem yazdım, ancak aynı hatayla bitiyorum.
Bu istekte yanlış olan şey, her bir operatör için meteor ele alabilir mi?
DÜZENLEME: Ben robomongo doğrudan eklemek çalıştı ve işe yaradı. Mongo versiyonu db.version()
döner
2.6.7 yazarak * EDIT2: $pull
ve $push
ile hem güncelleme çalışır: Ben bu yüzden önce kontrol etmedi bunu beklemiyorduk. Ancak, veriler gerçekten güncellenmiş olsa bile, hala hatayı alıyorum.
* DÜZENLEME:
{
"_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
ben çekin ve bir meteor Collection ile oluşturursanız pozisyon index
MongoDB sunucunuzun sürümü nedir? – JohnnyHK
Aynı komutu "mongo" kabuk istemcisinde çalıştırmayı deneyin. –
@DmytroShevchenko Aynı komut, RoboMongo'da (sanırım kabuk istemcisine eşdeğer) iyi çalışıyor. – Billybobbonnet