设置自己的猫鼬模式_id属性
Setting own mongoose schema _id property
我发现了一些例子,展示了在猫鼬模式中设置自己的_id
属性为默认ObjectId以外的东西的能力:
var personSchema = new mongoose.Schema({
_id: Number,
name: String
});
我有几个问题:
1)这个自动增加和处理一切为我吗?我所见过的唯一示例没有显示任何额外的代码来确保这是MongoDB中唯一的和递增的键。
这似乎不适合我。当我从模式中删除_id
时,我得到了按预期正确发布的文档,但是当我添加它(_id: Number
)时,没有向集合中添加任何内容,并且Postman只返回一个空对象{}
。以下是相关代码:
var personSchema = new mongoose.Schema({
_id: Number,
name: String
});
var Person = mongoose.model("Person", personSchema);
app.get("/person", function (req, res) {
Person.find(function (err, people) {
if (err) {
res.send(err);
} else {
res.send(people)
}
});
});
app.post("/person", function(req, res) {
var newPerson = new Person(req.body);
newPerson.save(function(err) {
if (err) {
res.send(err);
} else {
res.send(newPerson);
}
});
});
POST请求返回{}
,集合和文档都不创建。
如果在模式定义中包含_id
字段,则在插入文档时必须提供自己手动生成的_id
。否则,文档将不会被插入。
或者,如果您在模式定义中不包含_id
字段,则在插入文档时,Mongoose将自动为您创建此字段,并且类型为ObjectId
(这是MongoDB在文档上设置_id
字段的默认方式)。
相关文章:
- 使用Google'设置ID属性;s映射API
- 如何排除对象'在$.toJSON之前或期间的s id属性
- 为什么可以't我得到特定跨度的ID属性
- 如何传递id属性而不是值
- 设置 HTML 自定义属性与在 ID 属性中存储信息
- 如何选择并单击没有 id 属性的按钮
- 在标头中显示id属性
- 如何使用json对象作为li元素的id属性或使用javascript锚定标记id
- 如何将javascript变量值设置为html元素的id属性
- 根据单选按钮id属性调用ajax jquery
- 如何用angular js对HTML元素的id属性进行条件设置
- 在模板angularJs中从控制器填充id属性的值
- JavaScript文档.getElementById(“id”)和元素id属性
- 如何查找所有具有匹配类名的id属性
- 使用 jQuery 通过 ID 属性选择 HTML 元素
- 从 Zend 窗体元素中删除 id 属性
- 使用 for 循环,如何迭代对象以向其添加 id 属性
- 查找 DOM 上具有“id”属性的所有元素
- 页面上第二个表单所需的唯一 id 属性
- 在包含许多元素的页面中首选 id 属性或数据属性