草庐IT

全息投影

全部标签

node.js - 使用 Mongoose 在投影中包含 Mongodb "_id"字段

我正在使用Node.js和Mongoose检索Mongo文档,如下所示:varapp=express();varThread=mongoose.model('threads',schema);app.get('/api/closed/all',function(req,res){Thread.find({IsCLOSED:true},function(err,post){res.send(post);});});但它没有返回“_id”字段,我错过了什么?在文档中它说默认情况下应该包含_id谢谢**编辑**解决方案:我必须在架构中指定它:varschema=newmongoose.Sch

mongodb - QueryDsl MongoRepository 投影

我正在使用带有querydsl的mongodb的spring-data。我有一个存储库publicinterfaceDocumentRepositoryextendsMongoRepository,QueryDslPredicateExecutor{}和一个实体@QueryEntitypublicclassDocument{privateStringid;privateStringname;privateStringdescription;privatebooleanlocked;privateStringmessage;}我需要加载包含ID和名称信息的文档列表。所以只有id和name

mongodb - Mongo聚合,投影数组第一个元素的子域

我有一个元素子集合,我想投影该集合中第一个项目的某个子字段。我有以下内容,但它只投影数组中所有元素的字段。Items是Orders的子集合,每个Item对象都有一个Details子对象和下面的ItemName。我只想返回列表中第一个项目的项目名称。这将返回列表中每个项目的项目名称。我该如何调整它?db.getCollection('Orders').aggregate([{$match:{"Instructions.1":{$exists:true}}},{$project:{_id:0,'UserId':'$User.EntityId','ItemName':'$Items.Deta

mongodb - 通过聚合中的索引投影嵌套数组字段值

我在MongoDB中进行聚合,它应该在其$project阶段有一个数组字段投影。但我无法通过索引访问数组字段:{//projectionstage$project:{'foo':{'$ifNull':['$bar.0.baz.0.qux','*']}}}这会将foo设置为一个空的array。bar是一个多维数组字段。我的MongoDB版本是3.2。如果没有$unwind/$group旧的繁重解决方案的麻烦,我该怎么做?感谢您的帮助。 最佳答案 使用$slice,$map和$arrayElemAt:{"$project":{"foo"

mongodb - 使用 find() 方法进行投影时出错

我是MongoDB的新手。当我遇到问题时,我正在尝试mongo中的基本内容。我搜索了它,但找不到满意的答案。我有一个名为“users”的非常简单的集合,其中包含一些人的姓名和年龄。以下是db.users.find()的输出{"_id":ObjectId("566acc0442fea953b8d94a7e"),"name":"gabriel","age":22}{"_id":ObjectId("566acc0442fea953b8d94a7f"),"name":"andy","age":10}{"_id":ObjectId("566acc1342fea953b8d94a80"),"nam

MongoDB 索引和投影

我有几个关于MongoDB的问题:(1)索引对投影有帮助吗?(2)我已经为一个集合分配了多个索引,并尝试使用排序运行查找,然后使用explain,它显示了已排序的BtreeCursor索引field。会不会是其他索引在查询部分有帮助,而explain只是没有显示它,因为它只显示了帮助查找的最后一个索引?或者解释应该显示所有辅助查询、排序等的索引?谢谢。 最佳答案 Doesindexinghelpsinprojection?我相信它唯一真正有用的时候(由性能等定义)是查询是否被“覆盖”:http://docs.mongodb.org/

java - MongoDB Java 驱动程序 - 在查找查询中使用存在投影

我想获取所有不存在fielddownload的文档find{"download":{$exists:false}}对于Java,我找到了一个示例:BasicDBObjectneQuery=newBasicDBObject();neQuery.put("number",newBasicDBObject("$ne",4));DBCursorcursor=collection.find(neQuery);while(cursor.hasNext()){System.out.println(cursor.next());}我的改编是BasicDBObjectfield=newBasicDBOb

mongodb - 从 ObjectID 中提取日期的投影

我想做这样的事情:db.users.find({},{name:1,'timestampFrom(_id)':1})这样我就可以看到针对用户名的创建时间戳有没有办法从投影中的ObjectID中提取时间戳? 最佳答案 看看ObjectId.getTimestamp()(Documentation)。您还可以在查询中映射(Documentation)此函数。db.users.find({},{name:1,_id:1}).map(function(u){return{name:u.name,created:u._id.getTimest

带有 $lookup 的 MongoDB 聚合仅包括(或投影)一些要从查询返回的字段

在mongo中,在使用$lookup进行聚合之后,我希望请求只返回一些字段而不是整个文档。我有以下查询:db.somecollection.aggregate([{$lookup:{from:"campaigns",localField:"campId",foreignField:"_id",as:"campaign"}},{$unwind:"$campaign"},{$lookup:{from:"entities",localField:"campaign.clientid",foreignField:"_id",as:"campaign.client"}}]);此请求将返回给我:{

java - mongodb java驱动程序在聚合/投影操作中隐藏id字段

我正在使用javamongodb驱动程序执行聚合操作,我遵循了文档中的示例(粘贴在下面)。据此,_id字段应该被隐藏。但是,根据我自己的代码以及此示例的输出的经验,即使将投影值设置为0(它在mongoshell中工作),_id字段也不会隐藏。有谁知道这是否是mongodbjava驱动程序中的错误?还是我做错了什么?//createourpipelineoperations,firstwiththe$matchDBObjectmatch=newBasicDBObject("$match",newBasicDBObject("type","airfare"));//buildthe$pro