草庐IT

find_one

全部标签

ruby-on-rails - mongoid : deal with concurrent find_or_create_by

在mongoid中使用find_or_create_by时有没有办法处理并发?我正在使用Tag.find_or_create_by(name:"foo")来标记我的应用程序中的一些项目。在Tag模型中,我还使用了唯一性验证:validates_uniqueness_of:name但是,当用户在短时间内发送多个帖子请求时,我的数据库中就会出现重复的标签。我想我明白为什么会发生这种行为,但我不知道如何让它按预期工作。任何想法?谢谢! 最佳答案 我会将其翻转为两个操作以使其成为原子操作:1)查找2)如果未找到则UPSERT编辑:或者,使用

javascript - Node ,mongoose 'findOne' 在另一个集合的 'find' 内的一个集合上

基本上我有一个简单的场景,首先我需要获取整个集合,例如“汽车”,然后遍历该集合并根据第一个集合中的某些条件对另一个集合执行“findOne”,例如“用户”。所以://requiringmodulesandmongoose.connect()part...CarModel.find(function(err,cars){console.log("1");_.each(cars,function(car){console.log("2");UserModel.findOne({username:car.owner},function(err,user){console.log("3");u

javascript - Mongo 和 Node.js : Finding a document by _id using a UUID (GUID)

我正在使用node.js开发一个restAPI,我正在尝试查询一个mongo集合。我可以使用字符串(例如“公司名称”)进行查询,但我需要能够查询文档中的“_id”元素。在mongo中,_id当前存储如下(作为GUID):{"_id":newBinData(3,"MH+t3q6PD0SxVR5z7/pzfw=="),"companyname":"TestCompany","databasename":"TestDataBase",}这是我当前的GET方法的样子:exports.getBusinessCardData=function(req,res){varid=req.params.i

arrays - MongoDB : find documents having 2 values in Array conforming to multiple criteria

假设,我们有文件:{_id:1,arr:[5,50]}{_id:2,arr:[11,53]}目标是找到数组中有2个值的文档,一个必须在范围(4,9)内,第二个在范围(45,55)内。在这种情况下,只有_id:1的文档应该返回。试过这个:db.Collection.find({arr:{$elemMatch:{$gte:4,$lte:9}}})-返回第一个文档db.Collection.find({arr:{$elemMatch:{$gte:45,$lte:55}}})-返回两者如何将这些标准组合在一起?db.Collection.find({arr:{$and:[{$elemMatch

python - pymongo update_one 语法错误

在mongodb中有一个名为“collection”的集合,我需要使用pymongo进行更新插入。collection.update_one({'_id':workflowID},{'$set':{'repop':repop},{'data':workflow__list()__}},upsert=True,multi=False)但我得到“SyntaxError:invalidsyntax”,在存储为“repop”的repop对象中,向上小箭头指向“o”。我已经查看了世界上所有关于此的语法,这对我来说似乎是正确的。有什么建议吗? 最佳答案

node.js - 在 mongoose 中填充 'find' 的 post hook middlewhere

我有一个文章架构,用于用户在我的网站上发布的文章。它引用了用户集合:varArticleSchema=newSchema({title:{//NOMARKDOWNFORTHIS,juststraightuptextforseparatingfromcontenttype:String,required:true},author:{type:Schema.Types.ObjectId,ref:'User'}});我想在所有find/findOne调用上有一个posthook来填充引用:ArticleSchema.post('find',function(doc){doc.populate

javascript - 简单的MongoDB查询查找item age > 10 learnyoumongo find函数

我正在浏览learnyoumongo我停留在第3部分。挑战中基本上包含一个测试数据库,里面全是鹦鹉,目标是选择年龄大于输入的鹦鹉。我遇到了一个奇怪的错误,谷歌充满了针对不完全相同问题的mongo2.x解决方案,而我正在使用mongo3.0这是javascript代码:varmongo=require('mongodb').MongoClient;varparsedInput=parseInt(process.argv[2]);varresults;mongo.connect('mongodb://localhost:27017/learnyoumongo',function(err,d

javascript - 需要执行 .toArray() 以在键名而非值上获取 mongodb .find() 的输出

好吧,所以在这个原始的question中,我试图仅按键名进行搜索,并且仅输出该名称的值,我能够通过使用.toArray()来做到这一点,如果我不这样做,那么我将得到这个巨大的输出无关的数据。但是在回调中使用数据是乏味的,因为它在不应该的时候在数组中。一些例子。这两者有什么区别。前者在不使用.toArray()的情况下为我提供输出,而后者如果我删除.toArray()则得到不相关的数据作为输出。前collection.findOne({"username":username},function(err,result){console.log(result);callback(err,re

javascript - 如何在 Model.find( obj , callback) 上传播回调 promise 值?

好的,我正在努力解决这个问题。在过去的一周里,我花了很多时间试图弄清楚如何使这项工作发挥作用。我学习了promises并制作了一些很酷的东西-我很喜欢它。但是,我做不到。我正在使用MongooseModel.find()方法。此方法接收两个参数:将用于查询的对象和将接收(error,data)对象的callback函数。我正在调用.find并传递findUser函数。UserModel.find(userObj,findUser).then(userFound,createUser);在findUser中,我正在创建一个Promise并解析或拒绝它。varfindUser=functi

ruby-on-rails - Mongoid 5 : find_one_and_update with returnNewDocument

Mongoidv5.1.2是否有可能在与find_one_and_update一起使用时忽略returnNewDocument选项?考虑以下代码:next_number=TrackingId.where(id:id).find_one_and_update({:$inc=>{auto_increment_counter:1}},upsert:true,returnNewDocument:true).auto_increment_counter其中auto_increment_counter是Integerfield:auto_increment_counter,type:Integer