我有ObjectId的字符串。
var comments = new Schema({
user_id: { type: Schema.Types.ObjectId, ref: 'users',required: [true,'No user id found']},
post: { type: Schema.Types.ObjectId, ref: 'posts',required: [true,'No post id found']}....
export let commentsModel: mongoose.Model<any> = mongoose.model("comments", comments);
我如何使用它:
let comment = new commentsModel;
str = 'Here my ObjectId code' //
comment.user_id = str;
comment.post = str;
comment.save();
创建“评论”模型并分配字符串user_id值或发布时,保存时出现错误。我将console.log(comment)
所有数据分配给vars。
我尝试:
var str = '578df3efb618f5141202a196';
mongoose.mongo.BSONPure.ObjectID.fromHexString(str);//1
mongoose.mongo.Schema.ObjectId(str);//2
mongoose.Types.ObjectId(str);//3
当然, 在所有通话之前* ,我还包括了猫鼬 *
import * as mongoose from 'mongoose';
什么都行不通。
您要使用默认导出:
import mongoose from 'mongoose';
之后,mongoose.Types.ObjectId
将起作用:
import mongoose from 'mongoose';
console.log( mongoose.Types.ObjectId('578df3efb618f5141202a196') );
编辑: 完整示例(已通过测试mongoose@4.5.5
):
import mongoose from 'mongoose';
mongoose.connect('mongodb://localhost/test');
const Schema = mongoose.Schema;
var comments = new Schema({
user_id: { type: Schema.Types.ObjectId, ref: 'users',required: [true,'No user id found']},
post: { type: Schema.Types.ObjectId, ref: 'posts',required: [true,'No post id found']}
});
const commentsModel = mongoose.model("comments", comments);
let comment = new commentsModel;
let str = '578df3efb618f5141202a196';
comment.user_id = str;
comment.post = str;
comment.save().then(() => console.log('saved'))
.catch(e => console.log('Error', e));
数据库显示如下:
mb:test$ db.comments.find().pretty()
{
"_id" : ObjectId("578e5cbd5b080fbfb7bed3d0"),
"post" : ObjectId("578df3efb618f5141202a196"),
"user_id" : ObjectId("578df3efb618f5141202a196"),
"__v" : 0
}
我不能使用将字符串数组保存到我的数据库中。 (请注意,为了便于编写,下面的所有代码都被简化了) 因此,我声明了person模式的一个变量: 模式本身看起来像: 说到储蓄,它只是一个简单的问题: 所以使用邮递员,我在体内发送一个数组-然而每次我检查数据库,它只是显示一个条目与数组作为一个整体,即我如何发送它: 你知道我应该多做些什么吗?
在我的模式文件中,我试图将类型属性设置为数组。正如这里所见 尽管出于某种原因,当我试图保存文档时,它会将文档保存为字符串,即使它是数组中的元素,它仍会返回字符串。这是我保存文档的代码; 这是在网站中查看的猫鼬模式https://i.stack.imgur.com/TACoo.png 我在mongoose方面不是最棒的,但是,我确信有些事情发生了,但是我没有将文档保存到任何其他地方,而是仍然保存一个
如果我搜索John,就会得到结果(如果我搜索Jo,就会得到event)。但如果我搜索无名氏,显然没有任何结果。 如果我将查询更改为JohnDoe,我会得到结果,但它会返回所有在其最后/名字中有John或Doe的人。 接下来是尝试使用mongoose TextSearch: 有办法解决吗? 没有外部插件的答案是首选的,但其他的也是希望的。
我有以下JSON字符串: 我只想要和。我试过这样的方法: 但我得到了以下错误: 我只使用过几次JSON。有人能帮我吗? 对我来说最好的例子是这样的,我在另一个例子中做过: 可能吗? 现在我已经做到了: 我试着这样做: 然后: 但现在当我做一个Prtinout时,我会得到和以前一样的错误:
我返回文档,并将其用作以在稍后阶段获取文档。 返回,然后在或或中使用它将导致强制转换错误或 hex不是一个函数。 基本上也是直接从数据库复制粘贴以进行测试。 我用的是猫鼬^4.7。6; <代码>\u id看起来像: [堆栈痕迹] [CastError:CasterToObjectId在路径“586e30a597f85b69891df304”处对模型“模块”的值“586e30a597f85b6989
我试图获取任意长度的字符串[],并将其打印成字符串,最好使用字段分隔符。现在我有: 但是由于某种原因,它只是返回“第二个”值。我如何使它正确连接这些值? 另外,我可以使用来简化代码吗?谢谢