草庐IT

node.js - 在 mongo 中,是否可能有一个看起来有效但永远不存在的 _id?

我正在为一个网络应用程序做单元测试,我想做一个测试用例,看看当有人试图获取一个永远不存在的mongo文档时,我的应用程序是否会发回适当的错误消息。为了提供更多上下文,Web应用程序根据mongo数据库中该项目的_id发回有关某些项目的信息。用户能够获得任何项目的_id,因为所有项目都对公众可见。我想知道的是,是否可以有一个可以在数据库中查询但它永远不存在的_id?如果这是可能的,那么我可以制作一个测试用例,该用例将查询mongo数据库并保证每次都发回适当的错误消息。现在,我正在使用分配给不再存在的项目的mongo_id。我对这个_id的要求是:1)它需要与普通_id的长度相同2)它必须

node.js - 在 findOneAndUpdate upsert 之后 try catch _id

我第一次将findOneAndUpdate与“upsert”结合使用。我正在替换我最初的一些丑陋代码。我真的很喜欢重构的干净程度,但我的一个要求是,如果创建了一条新记录,我需要捕获_id以便在紧随其后的另一个进程中使用。问题是,如果记录不存在并且执行“upsert”,则返回为空。我试过returnNewDocument:true&false但没有成功。这是我的代码的结构:Model.findOneAndUpdate({"user_email":req.body.userEmail},{$set:{"property_1":req.body.prop1,"property_2":req.

java - Spring Data MongoDB 无法在组聚合中映射 _id

我正在使用SpringDataMongoDB生成聚合查询。有一次我这样做://5.Rejointhearraywithgroup.group("email","name","surname","birthday","creationTime","updateTime","technology").push(SCORES_FIELD).as(SCORES_FIELD));生成的步骤(在日志中)是这样的:"$group":{"_id":{"email":"$_id","name":"$name","surname":"$surname","birthday":"$birthday","cr

node.js - 从 mongoose 子模式填充对象 ID 数组

我有架构varlikedSchema=newSchema({counter:{type:Number,default:0,required:true},user:{type:Array,default:[],ref:'User'}});上面的模式包含与用户链接的ObjectId的数量以及计数器。varmySchema=newSchema({liked:likedSchema,name:{type:String,required:true}});在上面的模式中,我使用的是likedSchemamongoose.model('MyModel',mySchema);这是定义的两个模式。在li

javascript - 编写 MongoDB shell 脚本,以干净格式返回 ID

下面的脚本应该从mongo返回我想要的值的CSV,我想要的所有数据都被返回,但是两个项目的格式不同,尝试我可能无法只获得值。问题1:第一个返回项“$_id”返回ObjectId("5a4b7775d9cc09000185b908")但我只想获取值5a4b7775d9cc09000185b908。每次我尝试解析它或使用valueOf时,它都会返回一个空值。问题2:我请求的第4项应该是时间格式,表示使用两个日期值{$subtract:["$finished","$started"]}(开始和结束时间)。我返回的是NumberLong(5844),它应该只是毫秒数。脚本varcur=db.s

javascript - 在 MongoDB 文档中通过 ID 获取嵌套对象

我想检索帖子中的评论以进行编辑。我不确定如何处理这个问题。这是我的Post文档的样子:{"title":"FirstNode.jsApp","body":"testing123","status":"public","user":"JohnDoe","date":ISODate("2017-12-21T18:30:09.779Z"),"comments":[{"commentBody":"Thisisawesome!","commentUser":ObjectId("5a3bfd5a9e65351f9c18ba18"),"_id":ObjectId("5a3c02379e65351f9

mongodb - 计算 _id 在其他集合中的出现次数

我们有一个类似于下面的数据库结构:宠物主人:/*1*/{"_id":ObjectId("5baa8b8ce70dcbe59d7f1a32"),"name":"bob"}/*2*/{"_id":ObjectId("5baa8b8ee70dcbe59d7f1a33"),"name":"mary"}宠物:/*1*/{"_id":ObjectId("5baa8b4fe70dcbe59d7f1a2a"),"name":"max","owner":ObjectId("5baa8b8ce70dcbe59d7f1a32")}/*2*/{"_id":ObjectId("5baa8b52e70dcbe59

javascript - 何时在 Mongoose 中使用 new ObjectId ("string-id") 而不是 ObjectId ("string-id")?

因为我想与我的代码(Node.js)保持一致当我有一个查询并需要使用作为唯一对象的id值搜索某些内容时,执行它的最佳方法是什么?User.findOne({id:newObjectId("82jf20k2k...")}...或User.findOne({id:ObjectId("82jf20k2k...")}...创建一个新实例并每次都用对象填充内存似乎是错误的。使用newObjectId的唯一合理时间是在为我将使用ObjectId的所有其他操作插入数据时? 最佳答案 检查sourcecode:/***CreateanewObjec

node.js - MongoDB - 如何从具有 ID 的对象数组中检索多个集合

所以,我有一个包含以下集合的数据库。(使用整数表示对象ID)书籍:books=[{_id:1,title:"HarryPotter"},{_id:2,title:"Themazerunner"}...]客户:customers=[{_id:1,name:"John"},{_id:2,title:"Jane"}...]建议:recommendations=[{customerID:1,recommendations:[{bookID:1,likelihood:0.9},{bookID:2,likelihood:0.8}]},{customerID:2,recommendations:[{

javascript - Express POST 后重定向到新的 Mongo 保存 ID?

在我的POST请求中,我将一个新文档保存到我的mongo数据库中。保存数据库后,我可以对那个确切的文档ID进行res.redirect吗?我不确定该怎么做。我找不到任何似乎能准确回答我正在寻找的内容的教程、文档或stackoverflow问题。我可以做这样的事情吗?其中:id是我刚刚保存在mongoose/mongo中的文档的ID?newItem.save().then(res.redirect('/results/:id');我希望用户提交一个发布请求。我正在通过mongoose将信息保存到mongo文档中。然后在保存后我想重定向到一个新的URL,其中包含该页面上已保存项目的ID。