草庐IT

update_meta_data

全部标签

mongodb - 将新字段添加到集合中的当前文档时,Meteor.users.update 访问被拒绝

我想在当前文档中添加一个新字段(将来会用$push填充的数组),但出现错误updatefailed:MongoError:Cannotapply$push/$pushAllmodifier到非数组我正在处理Meteor.users集合。运行的代码是:varuser=Meteor.userId();Meteor.users.update({_id:user},{$set:{"newfield":["somedata"]}}); 最佳答案 发生这种情况是因为您不应该更改用户对象的根字段。来自thedocs:Bydefault,thecu

java - Spring Data MongoDB 凭据

使用SpringData,我试图获取一个具有用户名和密码凭据的Mongo对象。我需要以编程方式设置它,而不是使用XML我发现的所有示例都使用已弃用的系统。我正在寻找执行此操作的当前方法。这是我目前所拥有的:MongoClientconnection=newMongoClient(host,port);ListcredentialsList=connection.getCredentialsList();credentialsList.add(MongoCredential.createCredential(userName,getDatabaseName(),password.toCh

java - 将 Spring Data 随机(嵌入式)Mongo 端口与 NoSQL JUnit @Rule 一起使用

我目前正在尝试编写一个使用SpringDataMongo存储库的集成测试类。我使用由de.flapdoodle.embed.mongo依赖项提供的嵌入式Mongo实例。SpringData文档指定我们只需将此依赖项放入项目中,EmbedMongoAutoConfiguration会处理其余部分。现在,没关系,将端口设置为0会使自动配置过程找到空闲端口来启动mongo实例。此功能对我来说是必要的,以避免与其他测试(与我公司的其他项目一起在JenkinsCI服务器上运行)发生冲突。现在问题来了,我希望能够在我的每个测试方法运行之前从某个外部文件中注入(inject)一些测试数据。我发现No

spring - 可以将 Spring Data MongoDB 配置为支持每个存储库的不同数据库吗?

过去一周我一直在努力将SpringDataMongoDB成功集成到我们的应用程序中。我们使用相当普遍的做法,为我们依赖的每个集合使用单独的数据库。例如,TenantConfiguration数据库仅包含TenantConfigurations集合。我已多次通读文档并搜索解决方案的代码,但一无所获。这样一个广泛采用的项目肯定可以解决这个问题吗?我目前的尝试是这样的:@Configuration@EnableMongoRepositories(basePackages="com.whatever.service.repository",basePackageClasses=TenantCo

python - 值错误 : Extra Data error when importing json file using python

我正在尝试构建一个将json文件导入MongoDB的python脚本。对于较大的json文件,我的脚本的这一部分不断跳转到exceptValueError。我认为这与逐行解析json文件有关,因为非常小的json文件似乎可以工作。defread(jsonFiles):frompymongoimportMongoClientclient=MongoClient('mongodb://localhost:27017/')db=client[args.db]counter=0forjsonFileinjsonFiles:withopen(jsonFile,'r')asf:forlineinf

javascript - 具有动态字段名称的 Mongoose Model.update

我正在尝试将字段名称作为变量传递,这是我尝试过的方法,但它不起作用:varupdate={};update[req.body.field]=req.body.value;Model.update({"email":req.user.email},{$set:{update}},function(err,success){if(err)returnhandleError(err);})req.body.field包含模型模式中定义的字段名称,req.body.value是我要更新的值 最佳答案 您不需要将update放在大括号中,因为

node.js - 带有 NodeJS 的 Mongoose : Default value for document's Date only updates on server restart

我有一个像这样声明的Mongoose模式:varPostSchema=newmongoose.Schema({timestamp:{type:Number,default:Date.now()},});我定义了一条路线来创建非常有效的帖子。我用来创建帖子的代码如下:/*POSTCreatenewpost(authrequired)*/router.post('/',auth,function(req,res,next){varpost=newPost();post.save(function(err,post){if(err){returnnext(err);}res.json(pos

javascript - 带有 ArrayFilters 的 Node.js Mongoose .update

就目前而言,我能够使用Mongoshell实现此功能,但在使用Mongoose的Node.js内部嵌套数组时遇到问题。成功的Mongoshell命令:db.test.update({},{$set:{"this.$[i].that.$[x].amnt":10000}},{arrayFilters:[{"i._id":ObjectId('5a568059bc44142a9ca33d09')},{"x.userId":ObjectId('5a466acb864c752f8c9890c6')}]})结果:将amnt字段更改为10000。在对从数据库中提取的给定字符串调用ObjectId(''

json - 蒙戈数据库 : updating an objects using dot notation (multi-level object)

我有一个具有以下形式的对象:{"_id":ObjectId("4fa43f4d1cf26a6a8952adf1"),"userId":"1","facebookId":"1234","groups":[{"groupName":"testGroup","members":[{"memberFirstName":"userFirstName","memberLastName":"userLastName","memberDetails":{"userId":"1","faceBookId":"1234"}}]}]}这是一个为每个用户保存的集合——它的组,每个组包含组成员...所以“gro

php - MongoDB update() 实际上是在我的代码中替换整个记录

这个问题在这里已经有了答案:mongodbunwatedremovalofanemptyfieldonupdate(2个答案)关闭9年前。我正在使用来自PHP脚本的表单数据更新我的MongoDB数据库,它可以将可变数量的元素更新到MongoDB中。出于测试目的,我尝试了..$update='"continent"=>"Asia"';//oneelementtobeupdated,wouldbemultipleeventually$tracking->sessions->update(array("ts"=>$timestamp,"fb_id"=>$fb_id),array($updat