我得到這個錯誤
this.update(
{}, {
$pull: {
words: {
$in:['string', 'string1']
}
}
}, {
multi: true
});
我是一個ES6類中調用該在客戶端擴展Mongo.Collection,到目前爲止,其他所有內容(插入,刪除)都起作用了,我沒有以任何方式修改更新方法。集合是一個local collection這樣聲明:
WordsList = new WordCollection('words', {connection: null});)
查詢是非常相似的示例文件here中,實際上,我可以同時試圖重新在控制檯上這個例子中,同樣再現了同樣的錯誤。
I'm using Meteor 1.4.4.1 with MongoDB 3.2.12
出於某種原因,我還不能拖住,我可以跟蹤誤差蒙戈編譯查詢映射它的邏輯運算符($和$或),而不是元素(對比查詢)操作符($ in,$ eq)
我不認爲流星允許那種更新沒有具體的文件'_id'。另外,在瀏覽器客戶端中可能不適用於Minimongo,但這是「服務器端」的有效語法。所以也許你應該使用服務器方法。 –
那麼文檔中的示例不會傳遞一個id,它意味着適用於所有匹配的文檔。另外(忘記提及),這是一個客戶端集合(傳遞{connection:null}作爲第二個參數),將在帖子中更新它。 – lvlzqz
我認爲您在這裏混淆了文檔來源。 MongoDB核心文檔列出了'$ pull'的正確語法選項,這是一個有效的語句。 Meteor ['.update()'](https://docs.meteor.com/api/collections.html#Mongo-Collection-update)在實施時認爲「不受信任」的客戶端代碼在不包括特定文檔時無效'_id'。除非你專門確保了這個方法,否則它將不被允許。我認爲你真的需要執行這個[服務器方法](https://guide.meteor.com/methods.html) –