我有一个 mongodb 集合 term 具有以下结构
{
"_id" : "00002c34-a4ca-42ee-b242-e9bab8e3a01f",
"terminologyClass" : "USER",
"code" : "X67",
"terminology" : "some term related notes",
"notes" : "some notes"
}
和一个将术语集合表示为 Term.java
@Document
public class Term{
@Id
protected String termId;
@Indexed
protected String terminologyClass;
@Indexed(unique=true)
protected String code;
@Indexed
protected String terminology;
protected String notes;
//getters & setters
}
我在 term 集合中有很多文档。现在我在 Term.java 中添加了一个新字段
@Indexed
protected String status;
将字段 status 添加到 Term.java 后,在向 term 集合插入新术语时,我得到一个异常:
com.mongodb.MongoException: Index with name: code already exists with different options
我使用的是 MongoDB 版本:2.6.5 和 spring-data-mongodb 版本:1.3.2
最佳答案
您已经在该集合上有一个同名但定义不同的索引。我的猜测是您当前的代码索引是非唯一的
尝试:
db.Term.getIndexes()
如果情况确实如此(您在代码字段上有一个非唯一索引),请发出:
db.Term.dropIndex("code_1")
(替换为代码字段索引名称)。
下次启动应用程序时,它应该可以正常工作了。
或者,从 @Indexed 注释中删除唯一属性(如果您不希望它是唯一的)。
关于mongodb - MongoException : Index with name: code already exists with different options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30232081/
我可以在一个Rails应用程序中同时使用MongoDB和PostgreSQL吗?具体来说,我最终会想要使用像MongoHQ这样的东西。到目前为止,我未能在实验中进行这项工作。令我担心的是,MongoDB文档特别指出我必须禁用ActiveRecord。任何建议将不胜感激。 最佳答案 您无需禁用ActiveRecord即可使用MongoDB。查看Mongoid只需将gem加上任何模型与您现有的任何ActiveRecord模型一起添加。您应该注意到MongoHQ只是MongoDB的托管服务,可以与任何对象文档映射器(ODM)一起使用。更多
我必须在mongoid模型中添加几个字段,我知道MongoDB没有迁移,但如果我继续而不删除数据库,使rails完全“重新生成”数据库,它不会显示或使用新的领域!去这里最好的方法是什么?有比删除/重新打开mongodb更软的东西吗?提前致谢卢卡 最佳答案 一般来说,应该可以在运行时用新字段更新旧文档。MongoDB中不需要迁移。您可能想编写rake任务以使用新字段和默认值更新旧文档。您可以通过检查那些默认值为nil的新字段来找到这些文档。更新简单风格:如果您使用默认值定义一个新字段,只要您设置了一个新值,就应该始终使用该值:应用程序
我如何从Ruby代码连接到mongodb? 最佳答案 首先,您必须安装MongoDbgem:geminstallmongo然后运行代码:require'rubygems'#notnecessaryforRuby1.9require'mongo'db=Mongo::Connection.new.db("mydb")#ORdb=Mongo::Connection.new("localhost").db("mydb")#ORdb=Mongo::Connection.new("localhost",27017).db("mydb")
我正在尝试使用聚合框架(使用ruby)并像这样投影日期:db['requests'].aggregate([{"$project"=>{_id:0,method:'$method',user:'$user',year:{'$year'=>'$timestamp'}}}])文档是这样的:{_id:ObjectId("5177d7d7df26358289da7dfd"),timestamp:ISODate("2013-04-12T03:58:05+00:00"),method:"POST",status:"200",inputsize:"874",outputsize:"4981",u
我试图通过在Ruby中进行的查询从MongoDB获取字段的子集,但它似乎不起作用。它不返回任何结果这是ruby代码:coll.find("title"=>'Halo',:fields=>["title","isrc"])#thisdoesn'twork如果我删除字段散列,它会工作,返回包含所有字段的结果coll.find("title"=>'Halo')#thisworks查看mongodb控制台,第一个查询在mongodb服务器上结束,如下所示:{title:"Halo",fields:["title","isrc"]}如果我尝试从mongo客户端控制台进行查询,它会工作,我会得到结
文章目录Elasticsearch和MongoDB对比关于ElasticsearchElasticsearch应用场景关于MongoDBMongoDB优点mongodb适用场景Elasticsearch和MongoDB对比Elasticsearch和MongoDB开源许可协议参考Elasticsearch和MongoDB对比关于Elasticsearch官网:https://www.elastic.co/cn/elasticsearch/Elasticistheleadingplatformforsearch-poweredsolutions.Weaccelerateresultsthatma
db.col.insertMany([{"_id":"tt0084726","title":"StarTrekII:TheWrathofKhan","year":1982,"type":"movie"},{"_id":"tt0796366","title":"StarTrek","year":2009,"type":"movie"},{"_id":"tt0084726","title":"StarTrekII:TheWrathofKhan","year":1982,"type":"movie"}]);OS:LinuxMint17.3RosaMongoDB:dbversionv2.6.1
我的ion-content中有两个输入字段,它们都附加了一个ng-model。然后在我的ion-footer中有一个ng-click,我在其中调用一个函数并传入两个ng-models。当我在ion-content中单击ng-click时,一切正常,但是当我将它移到页脚时,我传递给函数的两个参数未定义。那么这是否意味着ion-content和ion-footer具有不同的$scope?即使它们在同一个文件中并具有相同的Controller?? 最佳答案 我相信ion-footer和ion-content会创建新的子作用域Prototy
我在使用mongodb在服务器端存储图像的客户端访问http请求时遇到了问题。我非常感谢帮助。我需要一个简单的示例来说明如何将图像文件作为数据添加到httppost请求(例如XMLhttprequest)中。比方说,我知道服务器方法的网址。图片来源定义在imgsrc文件名存放在name我有这个自动取款机:varhttp=newXMLHttpRequest();httpPost.onreadystatechange=function(err){if(httpPost.readyState==4&&httpPost.status==200){console.log(httpPost.res
在我的页面上,我有一个用于图像的ion-slide-box。由于在我的应用程序中用户将能够嵌入视频,因此我还应该将带有视频的iframe添加到同一个slider。这就是我的代码现在的样子:这是我的html:1">这只适用于图像,但是当我有视频时,如果它们占据100%的宽度,我将无法滑动它们,这是我在我的css中设置的,如果它们的宽度小于该宽度,我只能滑动它们如果我只在iframe不占用slider空间的那部分滑动它们。由于我需要让iframe占用100%的宽度,我想知道如何让它工作? 最佳答案 你试过了吗ion-slides相反?i