我正在使用NodeJS和Mongoose JS。我试图通过在项目中利用MongoDB时间序列来创建用户分析。我是一个新开发人员。我不知道我在这里做错了什么。数据库没有显示任何更改。
我想把每天的用户分析保存在我的时间序列中。
我的Mongoose架构:
import { Schema, model } from "mongoose";
const User = new Schema(
{
email: {
type: String,
unique: true,
required: true,
},
name: {
type: String,
required: true,
},
analytics: {
type: Array,
required: true,
default: [
{
date: new Date(),
country: {},
browser: {},
os: {},
},
],
},
},
{
timestamps: true,
timeseries: {
timeField: "createdAt",
metaField: "email",
granularity: "seconds",
},
expireAfterSeconds: 86400,
}
);
export default model("User", User);
输出如下所示:
{
"_id": {
"$oid": "641b2811c93e3ca1ae196995"
},
"email": "email1@email.com",
"name": "Name Name",
"analytics": [
{
"date": {
"$date": {
"$numberLong": "1679501306802"
}
}
}
],
"createdAt": {
"$date": {
"$numberLong": "1679501329465"
}
},
"updatedAt": {
"$date": {
"$numberLong": "1679501356039"
}
},
"__v": 0
}
谁能告诉我如何正确地实现时间序列?
1条答案
按热度按时间sczxawaw1#
我怀疑你正在使用MongoDB 5.0。你需要使用createCollection()创建TS集合,同时在你的模式中禁用 autoIndex。
希望能有所帮助!
最好的,