草庐IT

Node-red

全部标签

node.js - 将 ObjectId 转换为 MongoDB 中的字符串

我有一个聚合查询。{"$addFields":{"collegeID":(('$collegeDetail._id')),}}我想添加一个新字段'CollegeID'作为存储在collegeDetail._id中的ObjectId的字符串版本。任何帮助将不胜感激。谢谢。 最佳答案 你应该试试$toString将ObjectId转换为字符串的聚合db.strcoll.aggregate([{"$addFields":{"collegeID":{"$toString":"$collegeDetail._id"}}}])

node.js - 按数组mongodb查询的长度排序

我有如下的MongoDB文档:是否有查询以订阅组的长度对文档进行排序?可以是升序或降序。{"_id":ObjectId("58c29d9ec79d585c0e16b110"),"subscribedGroups":[ObjectId("5b28a9190c8c0d0014b03a0c"),ObjectId("5b2930650b813a0014a3294d"),ObjectId("5b29f1b5243d470014d6d351")]} 最佳答案 您可以使用$size找到subscribedGroups的大小然后轻松$sort与数组

node.js - Mongoose 中 ref 集合的默认值

我有一个用户个人资料,我有一个“收入”字段,它在模式中看起来像这样收入:{类型:Schema.Types.ObjectId,引用:'收入'创建新用户时如何为收入字段设置默认值?我不能这样做earning:{type:Schema.Types.ObjectId,ref:'Earning',default:0}我得到了错误转换为ObjectId失败,路径“收入”处的值“0” 最佳答案 您在这里做错的是试图在ID字段上输入数字。因为它是另一个对象Id字段的引用,所以不能将它设置为0。您需要做的是在数据库中创建用户时设置null,并使用ea

node.js - MongoDB cursor.each 方法返回最终的空值

varcursor=db.collection('Carreer').find();cursor.each(function(err,results){//thelastresultscallisnull});这个循环似乎额外运行了一次,返回null作为表中每一列的最后一个值。如何阻止cursor.each返回null值? 最佳答案 这是cursor.each的预期行为.null值表示没有更多结果(即游标已耗尽/为空并已关闭)。如果你不想在光标结束时调用额外的null,你可以使用cursor.forEach:db.collectio

node.js - 如何发送批量 MongoDB count() 查询?

我的应用程序有一个搜索字段并进行自动完成,我首先获取distinct()值,然后立即发送一个count()查询每个不同的值。可能有几十个值要计算,这是很多查询。知道如何使用MongoDB的NodeJS模块避免大量查询吗?现在,查询是这样的:constbaseQuery={"organization":organization,"status":"processed"}letdomains=[]//A.QuerytogetthedisinctvaluesMongoDB.getMainCollection().distinct(`location.hostname`,{organizati

node.js - 需要比较 mongodb 中的 2 个不同的日期字段

我的Mongo数据库中有两个日期字段,我想将它们的差异(即它们的“年龄”)与以年为单位的值进行比较。例如:我想找到超过15年的Pharmacies。(CurrentDate-EstablishedDate)>15(记住CurrentYear因为它可能不是今天的日期)有什么方法可以做到这一点?下面的示例文档数组:[{"Pharmacy":"a","EstablishedDate":ISODate("2006-10-12"),"CurrentDate":ISODate("2018-07-17"),"Medicine":[{"MedName":"MedA","Quantity":55,"Ty

node.js - GraphQL 错误 : Must provide name

我正在编写用于在NodeJS中登录用户的突变。它给出错误“必须提供名称”。这是浏览器GraphQL查询:mutation{login(username:"dfgdfg",password:"test1234"){_id,name{fname,lname,mname}}}这是我的代码constlogin={type:UserType,args:{input:{name:'Input',type:newGraphQLNonNull(newGraphQLObjectType({username:{name:'Username',type:newGraphQLNonNull(GraphQLSt

node.js - docker 容器内的 Mongodb 连接错误

我一直在尝试获取一个基本的nodeJSapi来连接到一个mongo容器。这两个服务都在docker-compose.yml文件中定义。我在这里和docker的论坛上阅读了无数类似的问题,所有问题都表明问题出在您的mongo连接URI上。这不是我的问题,如下所示。docker-compose.ymlversion:'3.7'services:api:build:./command:npmrunstart:devworking_dir:/usr/src/api-boiler/restart:alwaysenvironment:PORT:3001MONGODB_URI:mongodb://m

node.js - *ngIf-else 不显示其他结果

我不知道为什么这不起作用,我被卡住了。谁能发现我的代码有什么问题?当没有票可显示时,我试图显示一条未找到消息。我尝试通过ticketsarraylenght获取结果,但它始终显示长度为0。HTMLPiletinr.{{ticket._id}}Ticketnotfound.TSimport{Component,OnInit}from'@angular/core';import{TicketService}from'../../ticket.service';import{ActivatedRoute}from'@angular/router';import*asmomentfrom'mo

node.js - Mongoose - 返回单个文档而不是带有聚合的文档数组

在开始使用聚合来创建文档的时间戳之前,我使用的是findOne,这样我可以获得单个对象,但现在我得到的是一个包含单个对象的数组。是否可以使查询返回单个对象而不是数组?提前谢谢你。我正在使用的查询:News.aggregate().match({'_id':n}).project({'title':true,'text':true,'timestamp':{'$subtract':['$date',newDate('1970-01-01')]}})返回的内容:[{"_id":"5b9650beae847b1e5866cace","title":"Notícia2","text":"Tex