是否有一个函数将字符串转换为节点使用猫鼬objectId ?模式指定某个对象是ObjectId,但当它从字符串中保存时,mongo告诉我它仍然只是一个字符串。例如,对象的_id显示为objectId("blah")。
当前回答
如果你想使用模式
const yourSchemma = new Schema({
"customerId": {
type: mongoose.Types.ObjectId,
required: true
}
});
其他回答
我无法解决这个方法(诚然,我没有搜索很长时间)
mongoose.mongo.BSONPure.ObjectID.fromHexString
如果你的模式期望属性是ObjectId类型,那么转换是隐式的,至少在4.7.8中是这样的。
你可以使用这样的东西,但是,它提供了更多的灵活性:
function toObjectId(ids) {
if (ids.constructor === Array) {
return ids.map(mongoose.Types.ObjectId);
}
return mongoose.Types.ObjectId(ids);
}
如果你想使用模式
const yourSchemma = new Schema({
"customerId": {
type: mongoose.Types.ObjectId,
required: true
}
});
你可以这样做:
var mongoose = require('mongoose');
var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");
编辑:新标准使用frommhexstring而不是fromString
如果你想经常使用ObjectId而不想使用mongoose。types。ObjectId,你可以解构你的声明:
const {
Types: { ObjectId: ObjectId },
} = require("mongoose");
const id=ObjectId("4edd40c86762e0fb12000003")
var mongoose = require('mongoose');
var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");
推荐文章
- 有没有办法修复包锁。json lockfileVersion所以npm使用特定的格式?
- 无法连接到服务器127.0.0.1:27017
- 如何使用npm全局安装一个模块?
- 实时http流到HTML5视频客户端的最佳方法
- 使用node.js下载图像
- Node.js Express中的HTTP GET请求
- Node.js:将文本文件读入数组。(每一行都是数组中的一项。)
- npm犯错!错误:EPERM:操作不允许,重命名
- Node Sass还不支持当前环境:Linux 64位,带false
- 我如何添加环境变量启动。VSCode中的json
- 如何创建数据库的MongoDB转储?
- 如何将MongoDB作为Windows服务运行?
- 解析错误:无法读取文件“…/tsconfig.json”.eslint
- 在Node.js中'use strict'语句是如何解释的?
- 当WebSockets可用时,为什么要使用AJAX ?