mongodb - 尝试插入 MongoDB 集合时,键 $date 不能以 '$' 开头
问题描述
所以我有一个名为“noticias”的数据库和一个名为“noticias2”的集合
下面是验证模式:
db.createCollection("noticias2", {
validator: {
$jsonSchema: {
bsonType: "object",
required: [ "newsID", "nombre", "autor", "fecha", "cuerpo", "comentarios"],
properties: {
newsID: {
bsonType: "int",
description: "Numero Unico para cada Noticia"
},
nombre: {
bsonType: "string",
description: "Nombre de la noticia"
},
autor: {
bsonType: "string",
description: "Nombre del autor de la noticia"
},
fecha: {
bsonType: "date",
description: "Nombre de usuario del autor"
},
cuerpo: {
bsonType: "string",
description: "Cuerpo de la noticia"
},
comentarios: {
bsonType: ["array"],
minItems: 0, // each box of food color must have at least one color
uniqueItems: false,
items: {
bsonType: ["object"],
required: ["autor", "calificacion", "fecha", "comentario"],
description: "Los datos de cada comentario",
properties: {
autor: {
bsonType: "string",
description: "Nombre del autor de la noticia"
},
calificacion: {
bsonType: "int",
description: "La calificacion que dio el autor a la noticia"
},
fecha: {
bsonType: "date",
description: "Fecha en la que se realizo el comentario"
},
comentario: {
bsonType: "string",
description: "Cuerpo del comentario"
},
}
}
},
tag: {
bsonType: ["array"],
uniqueItems: false,
items: {
bsonType: ["string"],
description: "Los datos de cada comentario",
}
}
},
}
},
validationAction: "warn"
})
当我尝试插入新项目以测试架构时,出现错误:
"关键 $date 不能以 '$' 开头"
这是插入查询:
db.noticias2.insert(
{
"newsID": 3,
"nombre": "Switches",
"autor": "Jeannine Hammarberg",
"fecha": {
"$date": "2019-05-06T15:32:57.000Z"
},
"cuerpo": "Bushpig",
"comentarios": [
{
"autor": "Gabrila Featonby",
"calificacion": 1,
"fecha": {
"$date": "2020-05-18T20:44:07.000Z"
},
"comentario": "Southern boubou"
},
{
"autor": "Janeta Lamonby",
"calificacion": 9,
"fecha": {
"$date": "2018-10-06T17:50:47.000Z"
},
"comentario": "Squirrel, uinta ground"
},
{
"autor": "Allard Livard",
"calificacion": 7,
"fecha": {
"$date": "2020-05-19T19:27:56.000Z"
},
"comentario": "Springbok"
}
],
"tag": [
"Gigazoom",
"Tanoodle",
"Kaymbo"
]
}
)
mongo --version:
蒙戈--版本:
MongoDB shell version v4.4.2
Build Info: {
"version": "4.4.2",
"gitVersion": "15e73dc5738d2278b688f8929aee605fe4279b0e",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "windows",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
PD:验证模式中的任何反馈都将不胜感激,并对它是西班牙语感到抱歉,我的教授强迫我这样做
解决方案
所以答案是替换每个
"fecha": {
"$date": "2020-05-18T20:44:07.000Z"
},
和:
"fecha": ISODate('2020-05-18T20:44:07.000Z'),
推荐阅读
- visual-studio-code - vscode扩展运行时如何在控制面板打印消息
- android - 用于最小噪声/高分辨率图像的最佳 camera2 设置
- regex - 您可以匹配单词而不匹配具有相同拼写的单词部分吗?
- java - 为什么我得到 NullPointerException?
- r - 使用 R 的不同绘图系统在 0 处绘制垂直和水平线
- selenium - 是否有等待一个过程完成 5 分钟的方法
- mysql - Sequelize 中未定义 findOne 属性
- reactjs - 在 ComponentDidMount 中更新状态后,React 的值状态为空
- .net - .NET 中计算冲突相对较少的长字符串的短哈希字符串的好方法是什么?
- python - 在 PySide2 中设置 QListWidget 流的语法是什么?