gpt4 book ai didi

javascript - 更新/更新插入/插入到 Meteor 和 MongoDB 中的嵌套集合

转载 作者:行者123 更新时间:2023-11-27 23:09:21 26 4
gpt4 key购买 nike

我有这个集合和架构:

Words = new Mongo.Collection("words");

WordsSchema = new SimpleSchema({
date: {
type: String
},
owner: {
type: String
},
entries: {
type: [Entry]
}
});

Entry = new SimpleSchema({
post: {
type: String
},
elapsed_time: {
type: Number
},
createdAt: {
type: Date
}
});

Words.attachSchema( WordsSchema );

我只是尝试通过 UPSERT(或使用 upsert = true 更新)向此集合添加条目,如下所示:

Words.update({
date: today,
owner: Meteor.userId()
}, {
$push: {
entries: { post: post, elapsed_time: elapsed_time, createdAt: new Date() }
}
}, {
upsert: true
});

即如果存在日期 = 今天(存储为“YYYY-MM-DD”)且所有者 = userId 的对象,则它仅添加特定条目。

但是我做错了什么,因为我收到错误:“需要条目”。

非常感谢任何帮助或想法!谢谢。

最佳答案

我不确定这有什么问题。但我猜简单模式不支持 type: [Entry] 。所以这里你可以尝试这两种方法来实现相同的功能。1. 合并两个架构。

WordsSchema = new SimpleSchema({
date: {
type: String
},
owner: {
type: String
},
entries: {
type: Array
}
"entries.$": {
type: Object
},
"entries.$.post: {
type: String
},
"entries.$.verified": {
type: Boolean
},
"entries.$.verified": {
type: Boolean
}
});

2.通过使用 $ 您可以分隔两个模式

WordsSchema = new SimpleSchema({
date: {
type: String
},
owner: {
type: String
},
entries: {
type: Array
}
"entries.$": {
type: Entry
}
});

Entry = new SimpleSchema({
post: {
type: String
},
elapsed_time: {
type: Number
},
createdAt: {
type: Date
}
});

关于javascript - 更新/更新插入/插入到 Meteor 和 MongoDB 中的嵌套集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com