Javascript 为什么不';难道我的装置没有被插入Meteor.js中的Mongo收藏吗?

Javascript 为什么不';难道我的装置没有被插入Meteor.js中的Mongo收藏吗?,javascript,meteor,Javascript,Meteor,当我运行Files.find().fetch()时,我的Chrome控制台中只显示了5个装置。正如你所看到的,我有更多的装置,我想添加到我的收集。第一个文件位于/lib中,名为files.js,如下所示: Files = new Mongo.Collection('files'); Meteor.methods({ deleteFile: function(id) { // check to see if user is actually the owner of th

当我运行
Files.find().fetch()
时,我的Chrome控制台中只显示了5个装置。正如你所看到的,我有更多的装置,我想添加到我的收集。第一个文件位于/lib中,名为
files.js
,如下所示:

Files = new Mongo.Collection('files');

Meteor.methods({
    deleteFile: function(id) {
        // check to see if user is actually the owner of the file
        var file = Files.findOne(id);
        if (Meteor.userId() != file.owner) {
            // user could've sent any data, but we want the one in the database,
            //   so we find do Files.findOne(id).owner instead of data.owner
            throw new Meteor.Error('Not Authorized', 'User is not the right owner?');
        }

        Files.remove({_id: id});
    },
    insertFile: function(data) {
        // user must be logged in
        if (!Meteor.userId()) {
            throw new Meteor.Error('Not Authorized', 'User is not logged in!');
        }

        // set owner
        data.owner = Meteor.userId();

        // insert into the db collection
        Files.insert(data);
    },
    updateFile: function(id, data) {
        // user must be logged in
        if (!Meteor.userId()) {
            throw new Meteor.Error('Not Authorized', 'User is not logged in!');
        }

        // check to see if user is actually the owner of the file
        var file = Files.findOne(id);
        if (Meteor.userId() != file.owner) {
            // user could've sent any data, but we want the one in the database,
            //   so we find do Files.findOne(id).owner instead of data.owner
            throw new Meteor.Error('Not Authorized', 'User is not the right owner?');
        }
        // ensure data belongs to current user, client can't change the user
        data.owner = Meteor.userId();
        // update the db collection
        Files.update(id, data);
    }
});
Meteor.startup(function() {
// code to run on server at startup
// count recipes entry
var num = Files.find().count();
if (num === 0) {
    var fixtures = [
        {
            username: 'FakeUser-1',
            firstName: 'John1',
            lastName: 'Smith',
            email: 'k@opt.net',
            phone: '555-555-5555',
            streetAdd: '8 Milk Street',
            town: 'Compton',
            state: 'NY',
            econtact: {
                eName: 'Jane Smith',
                phone: '555-555-5555'
            },
            prefs: 'deaf',
            admin: false
        },
        {
            username: 'FakeUser-2',
            firstName: 'John2',
            lastName: 'Smith',
            email: 'k@opt.net',
            phone: '555-555-5555',
            streetAdd: '8 Milk Street',
            town: 'Compton',
            state: 'NY',
            econtact: {
                eName: 'Jane Smith',
                phone: '555-555-5555'
            },
            prefs: 'deaf',
            admin: false
        },
        {
            username: 'FakeUser-3',
            firstName: 'John3',
            lastName: 'Smith',
            email: 'k@opt.net',
            phone: '555-555-5555',
            streetAdd: '8 Milk Street',
            town: 'Compton',
            state: 'NY',
            econtact: {
                eName: 'Jane Smith',
                phone: '555-555-5555'
            },
            prefs: 'deaf',
            admin: false
        },
        {
            username: 'FakeUser-4',
            firstName: 'John4',
            lastName: 'Smith',
            email: 'k@opt.net',
            phone: '555-555-5555',
            streetAdd: '8 Milk Street',
            town: 'Compton',
            state: 'NY',
            econtact: {
                eName: 'Jane Smith',
                phone: '555-555-5555'
            },
            prefs: 'deaf',
            admin: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'my_FakeFileAA.py',
            ancestor: 'master-fakeFileA.py',
            content: '',
            type: 'python',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'FakeFileAB.py',
            ancestor: 'master-fakeFileA.py',
            content: '',
            type: 'python',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'myFakeFileBA.py',
            ancestor: 'master-fakeFileB.py',
            content: '',
            type: 'python',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'myFakeFileBB.py',
            ancestor: 'master-fakeFileB.py',
            content: '',
            type: 'python',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'default-1A.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'default-1B.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-2',
            fileName: 'default-2A.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3A.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3B.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3C.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3D.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3E.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-4',
            fileName: 'default.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: false
        }
    ];

    fixtures.forEach(function(element) {
        Files.insert(element);
    });
}
});
第二个文件位于/server中,名为
fixtures.js
,如下所示:

Files = new Mongo.Collection('files');

Meteor.methods({
    deleteFile: function(id) {
        // check to see if user is actually the owner of the file
        var file = Files.findOne(id);
        if (Meteor.userId() != file.owner) {
            // user could've sent any data, but we want the one in the database,
            //   so we find do Files.findOne(id).owner instead of data.owner
            throw new Meteor.Error('Not Authorized', 'User is not the right owner?');
        }

        Files.remove({_id: id});
    },
    insertFile: function(data) {
        // user must be logged in
        if (!Meteor.userId()) {
            throw new Meteor.Error('Not Authorized', 'User is not logged in!');
        }

        // set owner
        data.owner = Meteor.userId();

        // insert into the db collection
        Files.insert(data);
    },
    updateFile: function(id, data) {
        // user must be logged in
        if (!Meteor.userId()) {
            throw new Meteor.Error('Not Authorized', 'User is not logged in!');
        }

        // check to see if user is actually the owner of the file
        var file = Files.findOne(id);
        if (Meteor.userId() != file.owner) {
            // user could've sent any data, but we want the one in the database,
            //   so we find do Files.findOne(id).owner instead of data.owner
            throw new Meteor.Error('Not Authorized', 'User is not the right owner?');
        }
        // ensure data belongs to current user, client can't change the user
        data.owner = Meteor.userId();
        // update the db collection
        Files.update(id, data);
    }
});
Meteor.startup(function() {
// code to run on server at startup
// count recipes entry
var num = Files.find().count();
if (num === 0) {
    var fixtures = [
        {
            username: 'FakeUser-1',
            firstName: 'John1',
            lastName: 'Smith',
            email: 'k@opt.net',
            phone: '555-555-5555',
            streetAdd: '8 Milk Street',
            town: 'Compton',
            state: 'NY',
            econtact: {
                eName: 'Jane Smith',
                phone: '555-555-5555'
            },
            prefs: 'deaf',
            admin: false
        },
        {
            username: 'FakeUser-2',
            firstName: 'John2',
            lastName: 'Smith',
            email: 'k@opt.net',
            phone: '555-555-5555',
            streetAdd: '8 Milk Street',
            town: 'Compton',
            state: 'NY',
            econtact: {
                eName: 'Jane Smith',
                phone: '555-555-5555'
            },
            prefs: 'deaf',
            admin: false
        },
        {
            username: 'FakeUser-3',
            firstName: 'John3',
            lastName: 'Smith',
            email: 'k@opt.net',
            phone: '555-555-5555',
            streetAdd: '8 Milk Street',
            town: 'Compton',
            state: 'NY',
            econtact: {
                eName: 'Jane Smith',
                phone: '555-555-5555'
            },
            prefs: 'deaf',
            admin: false
        },
        {
            username: 'FakeUser-4',
            firstName: 'John4',
            lastName: 'Smith',
            email: 'k@opt.net',
            phone: '555-555-5555',
            streetAdd: '8 Milk Street',
            town: 'Compton',
            state: 'NY',
            econtact: {
                eName: 'Jane Smith',
                phone: '555-555-5555'
            },
            prefs: 'deaf',
            admin: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'my_FakeFileAA.py',
            ancestor: 'master-fakeFileA.py',
            content: '',
            type: 'python',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'FakeFileAB.py',
            ancestor: 'master-fakeFileA.py',
            content: '',
            type: 'python',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'myFakeFileBA.py',
            ancestor: 'master-fakeFileB.py',
            content: '',
            type: 'python',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'myFakeFileBB.py',
            ancestor: 'master-fakeFileB.py',
            content: '',
            type: 'python',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'default-1A.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-1',
            fileName: 'default-1B.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-2',
            fileName: 'default-2A.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3A.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3B.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3C.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3D.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-3',
            fileName: 'default-3E.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: true
        },
        {
            owner: 'FakeUser-4',
            fileName: 'default.web',
            ancestor: 'default.web',
            content: ['', '', ''],
            type: 'web',
            creationDate: new Date(),
            modifiedDate: new Date(),
            private: false
        }
    ];

    fixtures.forEach(function(element) {
        Files.insert(element);
    });
}
});
特别是,仅插入的5个文档是上面列出的前4个文档和最后一个文档(也许这会有所帮助)。我使用的是Meteor.js版本1.5.1

修正案: 另外,当我打开meteor mongo时,我得到0。我在这里真是不知所措


提前谢谢

您的出版物(我看不到其代码)是错误的。您可能正在使用
Meteor.publish('files',function(){return files.find({private:{$ne:true}}});})
,它显然只会返回5个非私有文件


如果您在客户机上查询count,它只会显示客户机看到的内容。

为什么要将两种不同的文档类型混合到同一个集合中?仅从查看它来看,我怀疑您的代码有效,但您的观察是错误的。如何计算插入的文档数?我知道@Styx会将它们分开later@dnickless我在上面的代码中使用
Files.find().count()
,在Chrome控制台中使用
Files.find().fetch()
,只需查看其中的5个对象。(顺便说一句,我也尝试过重置和重新启动Meteor)我会尝试在fixtures.forEach调用中添加一些调试输出,看看insert语句是否真的被调用了n次。你有没有试过清空你的收藏然后重新开始?您正在寻找正确的数据库/集合吗?问一些愚蠢的问题,但这似乎有点模糊。。。