草庐IT

mongodb-community

全部标签

mongodb - MongoDB 上的并发读取操作

我有一个scala应用程序,它正在通过4个线程访问包含1300万条记录的Mongo集合。我希望四个线程​​同时访问Mongo,并希望确保它们永远不会读取相同的记录。此外,线程2在传递3中访问的记录将来不应被任何其他线程访问。关于如何实现它有什么建议吗? 最佳答案 它看起来是一个调度器功能的好地方。Dispatcher需要读取所有id,然后使用比方说roundRobin队列将id推送到f1,f2,f3,f4。没有阻止从单个文档读取数据的锁定机制,因此当id被分派(dispatch)时,底层函数将必须执行所有操作。

mongodb - 删除 MongoDB 中的空文档

我想删除MongoDB中的空文档。MongoDB的查询应该是什么样子的。我只想过滤掉并非每个字段都为空的文档。我只想删除那些所有字段都为Null的案例:/*1*/{"_id":ObjectId("57601e880855160fbb496f50"),"instemail":[],"instProjekt1name":[],"inststrasse":[],"institutionID":[],"insttelefax":[],"insttelefon":[],"institutionsname":[],"instplz":[],"insturl":[],"instLand":[]}/*

mongodb - 在 Mongo Shell 中加密文档字段

当通过Mongoshell插入数据时,有没有办法加密或散列数据?我不需要加密整个数据库或集合,只需加密文档中的一个字段。我知道我可以通过应用程序执行此操作并在将值插入数据库之前对其进行加密,但我不确定通过Mongoshell手动输入数据时该怎么做。javascript解决方案也可以……有什么想法吗? 最佳答案 Mongo不支持字段级加密。由于没有触发器,因此需要在每次读/写时调用服务器端javasript函数。所以最好的方法是将其转移到应用程序,因为不会给数据库引擎增加额外的负载。要解决的另一件事:加密值的搜索将不可用。最后,您需要

java - 使用 Java 更新数组 MongoDB 中的元素

示例JSON文档{"_id":"ab85cebc-8c7a-43bf-8efc-1151ccaa4f84","address":{"city":"Bangalore","postcode":"560080","countrycode":"in","street":"SADASHIVNAGAR,SANKEYTANKRD"},"brand":"Shell","prices":[{"fuelType":"DIESEL","price":52.7},{"fuelType":"PETROL","price":67.05}]}我有大约20个文档用于brand:Shell,位于类加罗尔及其周边地区的

mongodb - 在所有文档的基于数组的字段中填充唯一项的计数

我有文档将category字段作为字符串数组,例如{name:"aaa",categories:["apple","banana","peach"]},{name:"bbb",categories:["apple","orange"},{name:"ccc",categories:["apple","peach"]}...在结果中,我需要有一个对象数组,该对象数组具有类别中每个唯一值的聚合值和该类别的出现次数,如下所示:[{category:"apple",qty:3},{category:"banana",qty:1},{category:"peach",qty:2},{catego

mongodb - 过滤 $lookup 结果

我有2个集合(带有示例文档):报告{id:"R1",type:"xyz",}报告文件{id:"F1",reportid:"R1",time:ISODate("2016-06-13T14:20:25.812Z")},{id:"F14",reportid:"R1",time:ISODate("2016-06-15T09:20:29.809Z")}如您所见,一个报告可能有多个报告文件。我想执行一个查询,匹配一个报告id,按原样返返回告文档,加上一个附加键存储作为子文档的reportfile最近的time(如果没有reportid会更好,因为它会是多余的),例如{id:"R1",type:"x

mongodb - bool 表达式与 Mongodb 中的字符串比较?

$cond在mongodb中是这样定义的:$cond:{if:{$gte:["$qty",250]},then:30,else:20}但是,我们可以对字符串这样做吗?我想用正则表达式比较文档中的字符串值,所以这样的事情可以工作:$cond:{if:{$match:[/sam/,"$name"]},then:30,else:20}/sam/是正则表达式,"$name"是我要比较的字段。作为旁注,这个表达式将被放入聚合管道中。 最佳答案 不,这目前是不可能的,并且是一个开放的featurerequest有一段时间了。根据您的需要,您可以

MongoDB、PyMongo - 根据查找条件聚合

我的数据库中有>8000条记录,这是其中之一:{"_id":ObjectId("57599c498c39598eafb781b9"),"_class":"vn.cdt.entity.db.AccessLog","url":"/shop/huenguyenshop/browse","ip":"10.0.0.238","sessionId":"86E5CF8E6D465A6EDFE7C9BF7890AA4B","oldSessionId":"86E5CF8E6D465A6EDFE7C9BF7890AA4B","cookie":"{\"sessionId\":\"86E5CF8E6D465A

json - 严格模式下的MongoDB日期格式

使用MongoDBjava驱动程序,在Document上应用toJson()方法将获得此文档的JSON表示形式,并将JsonMode设置为STRICT。以下纪元格式用于日期:{"$date":"dateAsMilliseconds"}使用mongoexport,我们得到一个ISO-8601格式。在官方文档(https://docs.mongodb.com/manual/reference/mongodb-extended-json/)中看到:在严格模式下,日期是一种ISO-8601日期格式,在模板YYYY-MM-DDTHH:mm:ss.mmm之后带有强制时区字段。MongoDBJSON

spring - 服务单元测试类中的 GridFsTemplate NullPointerException(技术堆栈 : Spring Data/Spring Boot/Micro Service/Mongodb )

我正在开发一个springboot应用程序。服务方法使用在服务中Autowiring的GridFsTemplate将PDF上传到mongodb存储库。此文件上传服务方法通过postman休息客户端按预期工作。但是,当我尝试运行单元测试时;调用相同的服务方法,SpringDataGridFsTemplate未初始化(在MongoDB中,您可以使用GridFS存储二进制文件)。这导致org.springframework.data.mongodb.gridfs.GridFsTemplate.store(...)抛出NullPointerException。拜托,你能帮忙吗,我已经被困在这几