我有一个mongoose对象模式,看起来类似于以下内容:
var postSchema = new Schema({
imagePost: {
images: [{
url: String,
text: String
}]
});
我试图创建一个新的职位使用以下内容:
var new_post = new Post();
new_post.images = [];
for (var i in req.body.post_content.images) {
var image = req.body.post_content.images[i];
var imageObj = { url: image['url'], text: image['text'] };
new_post.images.push(imageObj);
}
new_post.save();
但是,一旦我保存了文章,它就会被创建为带有images属性的空数组。我做错了什么?
我刚刚做了类似的事情,在我的情况下,附加到一个现有的集合,请参阅这个问题/答案。它可能会帮助你:
Mongoose/MongoDB—使用预定义模式附加到文档对象数组的简单示例
您的问题是在Mongoose中不能有嵌套对象,只能有嵌套模式。因此,您需要这样做(针对您想要的结构):
var imageSchema = new Schema({
url: {type:String},
text: {type:String}
});
var imagesSchema = new Schema({
images : [imageSchema]
});
var postSchema = new Schema({
imagePost: [imagesSchema]
});
新对象中缺少架构的imagePost
对象。请尝试以下方法:
var new_post = new Post();
new_post.imagePost = { images: [] };
for (var i in req.body.post_content.images) {
var image = req.body.post_content.images[i];
var imageObj = { url: image['url'], text: image['text'] };
new_post.imagePost.images.push(imageObj);
}
new_post.save();
我不能使用将字符串数组保存到我的数据库中。 (请注意,为了便于编写,下面的所有代码都被简化了) 因此,我声明了person模式的一个变量: 模式本身看起来像: 说到储蓄,它只是一个简单的问题: 所以使用邮递员,我在体内发送一个数组-然而每次我检查数据库,它只是显示一个条目与数组作为一个整体,即我如何发送它: 你知道我应该多做些什么吗?
在我的模式文件中,我试图将类型属性设置为数组。正如这里所见 尽管出于某种原因,当我试图保存文档时,它会将文档保存为字符串,即使它是数组中的元素,它仍会返回字符串。这是我保存文档的代码; 这是在网站中查看的猫鼬模式https://i.stack.imgur.com/TACoo.png 我在mongoose方面不是最棒的,但是,我确信有些事情发生了,但是我没有将文档保存到任何其他地方,而是仍然保存一个
我有两个收藏,一个是用户,另一个是猫。我想要猫的数据下我的用户集合。但我没有得到。 user.js
问题内容: 目前,我有两个几乎相同的架构: 和 它们的唯一区别在于验证:用户不需要名字,姓氏或电话。但是,管理员必须定义这些属性。 不幸的是,上面的代码不是很干,因为它们几乎相同。因此,我想知道是否有可能基于。例如: 显然,这只是伪代码。这样的事情可能吗? 另一个非常相似的问题是,是否有可能基于另一个创建新的架构,并为其添加更多属性。例如: 问题答案: 在其他地方,有人建议使用utils.inhe
假设我在另一个模式(项目)中有一个嵌套的模式(邀请),当试图保存邀请对象时,我想检查项目模式中的父属性“启用”是否设置为true或false,然后允许该人保存邀请对象到邀请数组。显然,this.enabled不起作用,因为它试图从邀请函模式中获得它,邀请函模式不存在。如何让父架构上的启用属性进行验证? 有什么想法吗?感谢任何帮助!
我正在学习一个教程,但在一个点上卡住了。我尝试在邮递员中发出一个POST请求,但返回一个我无法解决的错误。错误如下: (节点:3224)UnhandledPromiseRejectionWarning:MongooseError:操作缓冲在10000ms超时后超时。(C:\users\murad\desktop\full stack\node\node_modules\mongoose\lib\d