无法访问或使用 mongo 数据库终端中显示的文档
Cannot access or use documents showing in mongo db terminal
我创建了一个名为 Stampest 的 collection,用于存储用户创建的上传图像和标题字符串的引用。使用 ostrio:autoform package.此包创建一个名为 Images 的 collection,其中存储了所有用户上传的图像并引用 to/from。
当我在终端中使用
查询 mongo 时
db.stampest.find({})
我得到条目
这说明数据库中有文件,在Stampest
Collection。但是 问题 是当我在 Meteor Toys 调试中查看 collection 时,它说它是空的,当我插入文档时,在这种情况下,图片和标题,collection瞬间变为1,geos变回0。终端或控制台没有错误
因此,我无法访问这些文档,我该怎么办?
这是schema.js
Schemas = {};
Stampest = new Meteor.Collection('stampest');
Stampest.allow({
insert: function (userId, doc) {
return userId;
},
update: function (userId, doc, fields, modifier) {
// can only change your own documents
return doc.userId === userId;
},
remove: function (userId, doc) {
// can only remove your own documents
return doc.userId === userId;
}
});
Schemas.Stampest = new SimpleSchema({
title: {
type: String,
max: 60
},
picture: {
type: String,
autoform: {
afFieldInput: {
type: 'fileUpload',
collection: 'Images',
// uploadTemplate: 'uploadField' // <- Optional
// previewTemplate: 'uploadPreview' // <- Optional
}
}
}
});
Stampest.attachSchema(Schemas.Stampest);
publish
是这样的:
Meteor.publish('stampest', function () {
return Stampest.find({author: this.userId}).fetch();
console.log(Stampest.find());
});
用户像这样插入 image
和 title
:
<template name="createStamp">
<div class="grid-block">
<div class="grid-container">
<div class="upload-img">
<a href="{{file.link}}">{{file.original.name}}</a>
</div>
<div class="new-stamp-container">
{{> quickForm collection="Stampest" type="insert" id="insertStampForm" class="new-stamp-form"}}
</div>
</div>
</div>
</template>
根据我在您的代码中看到的情况,您正在 return 数据库项的 Array
而不是代码中的 Cursor
。
如果您查看 https://docs.meteor.com/api/pubsub.html,您会注意到常规的 publications
return 简单游标或游标数组,而不是您获取的数据。
编辑:另外,您出版物中的 console.log
永远不会被解释为 return 位于前一行。
我创建了一个名为 Stampest 的 collection,用于存储用户创建的上传图像和标题字符串的引用。使用 ostrio:autoform package.此包创建一个名为 Images 的 collection,其中存储了所有用户上传的图像并引用 to/from。
当我在终端中使用
查询 mongo 时db.stampest.find({})
我得到条目
这说明数据库中有文件,在Stampest
Collection。但是 问题 是当我在 Meteor Toys 调试中查看 collection 时,它说它是空的,当我插入文档时,在这种情况下,图片和标题,collection瞬间变为1,geos变回0。终端或控制台没有错误
因此,我无法访问这些文档,我该怎么办?
这是schema.js
Schemas = {};
Stampest = new Meteor.Collection('stampest');
Stampest.allow({
insert: function (userId, doc) {
return userId;
},
update: function (userId, doc, fields, modifier) {
// can only change your own documents
return doc.userId === userId;
},
remove: function (userId, doc) {
// can only remove your own documents
return doc.userId === userId;
}
});
Schemas.Stampest = new SimpleSchema({
title: {
type: String,
max: 60
},
picture: {
type: String,
autoform: {
afFieldInput: {
type: 'fileUpload',
collection: 'Images',
// uploadTemplate: 'uploadField' // <- Optional
// previewTemplate: 'uploadPreview' // <- Optional
}
}
}
});
Stampest.attachSchema(Schemas.Stampest);
publish
是这样的:
Meteor.publish('stampest', function () {
return Stampest.find({author: this.userId}).fetch();
console.log(Stampest.find());
});
用户像这样插入 image
和 title
:
<template name="createStamp">
<div class="grid-block">
<div class="grid-container">
<div class="upload-img">
<a href="{{file.link}}">{{file.original.name}}</a>
</div>
<div class="new-stamp-container">
{{> quickForm collection="Stampest" type="insert" id="insertStampForm" class="new-stamp-form"}}
</div>
</div>
</div>
</template>
根据我在您的代码中看到的情况,您正在 return 数据库项的 Array
而不是代码中的 Cursor
。
如果您查看 https://docs.meteor.com/api/pubsub.html,您会注意到常规的 publications
return 简单游标或游标数组,而不是您获取的数据。
编辑:另外,您出版物中的 console.log
永远不会被解释为 return 位于前一行。