草庐IT

投影projection

全部标签

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"}}]);此请求将返回给我:{

javascript - 使用 $project 在 MongoDB 聚合查询中包含一个 Javascript 变量

我有一个javascript循环,它执行一项特定任务,即遍历javascript哈希并在我的集合上调用聚合。我能够将变量插入到$match函数的聚合查询中,但我不能为$project函数插入一个变量。我想匹配哈希键,然后将哈希值与我刚刚匹配的文档中已有的值一起显示。这些哈希值和标签事先不在文档中。varcmtss={};for(varitemincursor['result']){varprov=cursor['result'][item]['prov_group'];cmtss[cursor['result'][item]['name']]=prov;}for(varitemincm

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

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

regex - 如何在投影中使用正则表达式查询 mongodb?

有谁知道是否有一种方法可以查询MongoDB并通过使用正则表达式作为投影的一部分只返回某些字段?例如:给定一个具有任意字段名称的集合,我如何查询该集合并只返回与正则表达式“^foo”匹配的字段名称。可能是这样的?db.mycollection.find({},{$regex:"^foo"})谢谢。布伦特。 最佳答案 我认为您需要将过程分为两部分,第一个部分是从MongoDB中检索字段名称。然后第二部分是您可以对结果运行正则表达式,然后您可以使用正确的字段查询数据库。 关于regex-如何

mongodb - Mongodb 嵌套数组中的投影

我在Mongodb中有一个遵循以下顺序的大量嵌套文档:站点->房间->ups->batteryStrings->电池。我试图通过batteryString_id字段仅返回匹配的batteryStrings及其电池。db.getCollection('sites').find({"rooms.ups.batteryStrings._id":ObjectId("55dc967efefd4e6a14332019")},{"rooms.ups.batteryStrings.batteries.$":1,"siteName":1})我得到以下有2个batteryStrings的。我只想返回第二个

python - 将不同的嵌入式结构投影到相同的名称

我正在编写一个执行这些任务的python脚本:查询带有嵌入文档的MongoDB集合聚合和项目以更改查询中返回的字段名称以匹配“u_”约定通过RESTAPI将值导入ServiceNow问题:嵌入文档的结构不一致。HOSTNAME字段以不同的结构存储。我需要将主机名作为u_hostname返回。我需要$hostnames.name的值(如果存在)或$hostname的值(如果存在)。我如何确定其中任何一个是否存在,并将其作为u_hostname返回?结构1主机名存储为$hostnames.name{"_id":"192.168.1.1","addresses":{"ipv4":"192.1

mongodb - 在 MongoDB 中使用 $project 转换日期

当我尝试reshape我的集合中的日期字段时出现错误。这是架构,我想reshape保存日期的sent字段:>db.complaints.findOne(){"_id":ObjectId("55e5990d991312e2c9b266e3"),"complaintID":1388734,"product":"mortgage","subProduct":"conventionaladjustablemortgage(arm)","issue":"loanservicing,payments,escrowaccount","subIssue":"","state":"va","ZIP":2

node.js - 带有 $project 的 mongodb 聚合有条件地排除一个字段

我想从mongodbaggergtion管道中排除一个字段,在阅读文档后,我想我需要指定1或0来保留或不保留该字段(参见http://docs.mongodb.org/manual/reference/operator/aggregation/project/)所以我尝试了以下(使用node.jsmongoose,但语法与普通mongo完全相同):aggregate.match({date:{$gte:today}});aggregate.sort('-date');aggregate.group({_id:'$name',date:{$first:'$date'},user:{$fi