簡體   English   中英

Meteor 使用 $push 更新到單個記錄上尚不存在的數組

[英]Meteor update with $push to an array that doesn't already exist on a single record

我已經通過 StackOverflow 上的許多答案,但仍然遇到問題。

首先,我在客戶端的控制台或終端控制台中沒有收到任何錯誤。 返回說成功但它沒有更新。

我在服務器上使用如下方法:

import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';

Meteor.methods({
   'agentPageAccess'({userID, pageID}) {
      Pages.update({ "PageID" : pageID }, {
        $push: { "agentAccess" : { "agentID" : userID } }
      });   
    }
});

這是調用更新之前的數據。 注意:該數組不存在,我希望添加它並更新該新數組中的數據,前提是該數組尚不存在。 如果數組已經存在,我希望它將新值推送到現有數組的末尾。

{ "_id" : "pPvQezHxC4J4tkGQg", "PageID" : "1234567", "PageName" : "Test Page", "PageToken" : "7654321" }

我已檢查以確保在觸發該方法時 userID 和 pageID 具有值。

這是客戶端的方法調用:

Template.assignAgents.events({
        'submit form': function(event) {
            event.preventDefault();
            let target = event.target;
            let userID = target.userSelect.value;
            let pageID = target.Page.value;

            Meteor.call('agentPageAccess', {
                userID: userID,
                pageID: pageID
            }, (err,res) => {
                if(err){
                    alert(err);
                }else{
                    alert("Agent assigned to page");
                }
            });
        }
    });

我是一位擁有多年經驗的老程序員,但對 Meteor 不熟悉。 所以請像我是這個平台的新手一樣說話。 非常感謝你們的幫助!!

代替 $pull 使用 $addToSet。 $addToSet 將創建具有指定值的數組字段。 這里是 mongodb doc addToSet的鏈接

import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';

Meteor.methods({
   'agentPageAccess'({userID, pageID}) {
      Pages.update({ "PageID" : pageID }, {
        $addToSet: { "agentAccess" : { "agentID" : userID } }
      });   
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM