是否有一个函数将字符串转换为节点使用猫鼬objectId ?模式指定某个对象是ObjectId,但当它从字符串中保存时,mongo告诉我它仍然只是一个字符串。例如,对象的_id显示为objectId("blah")。
当前回答
var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");
其他回答
你可以这样做:
var mongoose = require('mongoose');
var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");
编辑:新标准使用frommhexstring而不是fromString
你可以这样做:
var mongoose = require('mongoose');
var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');
var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");
如果您正在通过express和mongoose实现REST API,请参阅下面的代码片段。(以ADD为例)
.... 出口。AddSomething = (req,res,next) =>{ const newSomething = new SomeEntity({ _id:new mongoose.Types.ObjectId(), //它自己的ID somethingName: req.body.somethingName, 如果你想要传递一个对象ID,则传入一个foreignkey: mongoose.Types.ObjectId(req.body.theForeignKey)// }) } ...
希望有帮助
如果你想使用模式
const yourSchemma = new Schema({
"customerId": {
type: mongoose.Types.ObjectId,
required: true
}
});
推荐文章
- Nodemon错误:“已达到文件监视器数量的系统限制”
- 如何使webpack开发服务器运行在端口80和0.0.0.0使其公开访问?
- 如何在node.js模块中访问和测试内部(非导出)函数?
- 如何将base64编码的映像保存到磁盘?
- 在用nodejs和express创建的REST API中设置响应状态和JSON内容的正确方法
- 如何获得请求路径与表达请求对象
- 节点和错误:EMFILE,打开的文件太多
- 没有定义Electron require()
- 在摩卡测试时调用异步函数如何避免超时错误:超时超过2000ms
- package.json中属性“private”的目的是什么?
- 用套接字发送消息到指定客户端。IO和node.js
- 当我运行' npm install '时,它返回' ERR!代码EINTEGRITY ' (npm 5.3.0)
- 我如何使用Node.js Crypto创建HMAC-SHA1哈希?
- 如何在package.json中使用“main”参数?
- NPM清洁模块