这个问题与另一篇文章非常相似
我基本上想要使用mongodb版本的sql"like"'%m%'运算符
但在我的情况下,我正在使用java api for mongodb,而另一篇文章是使用mongodb shell
我尝试了在另一个帖子中发布的内容并且工作正常
db.users.find({"name": /m/})
Run Code Online (Sandbox Code Playgroud)
但在java中,我在BasicDBObject上使用put方法并将其传递给DBCollections对象上的find()方法
BasicDBObject q = new BasicDBOBject();
q.put("name", "/"+m+"/");
dbc.find(q);
Run Code Online (Sandbox Code Playgroud)
但这似乎没有用.
谁有任何想法?
有没有办法在mongoose中声明一个Model模式,这样当模型新建时,_id字段会自动生成?
例如:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var ObjectIdSchema = Schema.ObjectId;
var ObjectId = mongoose.Types.ObjectId;
var PersonSchema = new Schema({
_id: ObjectIdSchema,
firstName: {type: String, default: 'N/A'},
lastName: {type: String, default: 'N/A'},
age: {type: Number, min: 1}
});
var Person = mongoose.model('Person', PersonSchema);
Run Code Online (Sandbox Code Playgroud)
起初,我觉得很棒!,我会做的
_id: {type:ObjectIdSchema, default: new ObjectId()}
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用,因为新的ObjectId()仅在初始化模式时调用.所以调用两个新的Persion()会创建两个具有相同_id值的对象.
那么有没有办法做到这一点,每次我做"new Person()"生成一个新的ObjectId()?
我试图这样做的原因是因为我需要知道新人的_id值的价值以便进一步处理.
我也尝试过:
var person = new Person({firstName: "Joe", lastName: "Baz"});
person.save(function(err, doc, num){
console.log(doc._id);
});
Run Code Online (Sandbox Code Playgroud)
即使这样,doc也不包含ObjectId.但如果我查看数据库,它确实包含它.
ps我正在使用mongoose 2.7.1
pps我知道我可以在创建人时手动创建ObjectId:
var person = new Person({_id: new …Run Code Online (Sandbox Code Playgroud) 我最近开始使用 AWS Amplify,并且有使用 vanilla cloudformation 的经验。除了parameters.json部分之外,大部分内容都有意义。
貌似Amplify为我们使用的资源生成了cloudformation模板,但是它也生成了一个parameters.json文件,我以为相当于Parameterscloudformation的那一段,但好像不是。
在 Amplify 中parameters.json,内容只是object使用键值对。而在 cloudformation 中,参数具有如文档中所述的定义语法。
此外,parameters.json它似乎能够Ref以与 cloudformation 模板相同的方式进行调用。有谁知道什么是解析parameters.json文件并用Ref实际值替换?
例如在storage类别中,parameters.json文件有这样的键
"authRoleName": {
"Ref": "AuthRoleName"
},
Run Code Online (Sandbox Code Playgroud)
AuthRoleName好像在两个目录amplify-meta.json下都定义了backend,但是team-provider-info.json在amplify目录下也定义了。
有谁知道AuthRoleName它使用的是哪个文件?从我的文档阅读,无论是amplify-meta.json和team-provider-info.json是自动生成的。
出现了很多这些问题,因为我很好奇是否可以在 cloudformation UI 中手动执行 CF 中自动生成的 CF 模板。当我尝试复制参数部分和元数据部分时,我得到了无效的语法。
这让我认为 amplify 是使用它自己的解析器来生成最终的 CF 模板并在 CF 中执行它。我尝试搜索 cli 存储库,但找不到。
我最近开始了一个节点项目,我正在使用的两个模块是express和EJS.但默认我通常使用eclipse作为我的IDE,它适用于java和适合html和javascript.但我遇到的一个问题是.ejs文件我得不到标记颜色编码,或任何形式的代码完成.它基本上只是一个普通文件.
有没有人知道如何让eclipse将.ejs文件解释为.html文件?我认为除了偶尔的嵌入标签之外它非常相似.或者推荐更适合node.js/html/ejs开发的IDE.
谢谢!
有没有办法在使用mongoexport时只导出子文档中的指定字段?mongo docs说只使用-f field1,field2等......但这只适用于顶级字段.我在主文档中有一个文档,也有字段.有没有办法只获得那些?
例:
{
"topField1": "topValue1",
"topField2": "topValue2",
"subDoc1: {
"subField1": "subValue1",
"subField2": "subValue2"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法指定我只获得字段subField2?
我知道在常规的mongo查询中,我可以使用"subDoc1.subField2",这很简单,
return {"$oid": 122432432, {"subDoc1":{"subField2": "subValue2"}}但这似乎不适用mongoexport.
我也想出口json.
我正在尝试使用正则表达式在mongodb中进行$ ne查询,但它似乎不起作用.当我不使用正则表达式时,$ ne(不等于)运算符正常工作.
BasicDBObject q = new BasicDBObject()
q.put(field, ["\$ne": value])
Run Code Online (Sandbox Code Playgroud)
上述工作正常,结果集不包含任何具有该字段值的文档.
但我需要它不区分大小写.所以我这样做了
q.put(field, ["\$ne": Pattern.compile(value, Pattern.CASE_INSENSITIVE)])
Run Code Online (Sandbox Code Playgroud)
但这不起作用..
所以我想,让我去命令行,看看我是否可以手动完成.所以我这样做了:
db.Order.find({"bill.recipient.name": {$ne: /diep/i}},{"bill.recipient.name":1})
Run Code Online (Sandbox Code Playgroud)
它仍然无法正常工作!
有任何想法吗?
如何在mongodb中向数组顶部添加值?
说我在我的mongo集合中有这个文件:
{ "colors" : [ "red", "green", "blue" ] }
Run Code Online (Sandbox Code Playgroud)
如何在列表的前面添加"黄色"?
当我做:
{$push:{colors:"yellow"}}
Run Code Online (Sandbox Code Playgroud)
我明白了:
{ "colors" : [ "red", "green", "blue", "yellow" ] }
Run Code Online (Sandbox Code Playgroud)
我要这个:
{ "colors" : [ "yellow", "red", "green", "blue"] }
Run Code Online (Sandbox Code Playgroud)
提前致谢!
这有点棘手..如何对 ObjectId 字段进行正则表达式查询?
我正在使用 java api,所以这就是我到目前为止所拥有的
BasicDBObject q = new BasicDBObject()
q.put(field, Pattern.compile(value, Pattern.CASE_INSENSITIVE));
Run Code Online (Sandbox Code Playgroud)
这对于任何常规领域都适用。但似乎不适用于 ObjectId 字段。我认为这是因为我无法将 ObjectId 与字符串进行比较?我不能完全将部分 id 或正则表达式放入新的 ObjectId 中。它只会抛出一个错误。
对此有什么想法吗?我试图为用户提供一种输入 id 的一部分的方法,并能够取回具有该模式的所有文档。
提前致谢!
如何在IntelliJ IDEA中的特定代码块或选择内进行搜索?
我习惯在Eclipse中使用这个功能.在Eclipse中,您只需双击大括号的开头,它就会突出显示整个代码块.之后你可以在Command+ f
(在Windows上Ctrl+ f)只在突出显示的块中搜索,或者你只需要突出显示你需要的内容并只搜索那段代码.
谁能解释一下如何使用RCT_EXPORT_MODULEReact Native的宏来创建具有特定名称而不是类名称的自定义反应模块?
该文件说,
这需要一个可选参数,该参数指定模块将在您的 JavaScript 代码中可访问的名称
我的班级名称是:
@implementation ReactCustomService
Run Code Online (Sandbox Code Playgroud)
但我想将其重命名为:
RCT_EXPORT_MODULE(@"CustomService")
Run Code Online (Sandbox Code Playgroud)
但这不起作用。当我做:
var service = NativeModules.CustomService;
Run Code Online (Sandbox Code Playgroud)
什么都没有返回。但如果我这样做了RCT_EXPORT_MODULE(),那么NativeModules.ReactCustomService它工作正常。
有什么想法吗?我也试过RCT_EXPORT_MODULE("CustomService"),但这也不起作用。
我在反应原生:0.40.0
我想弄清楚从一天开始的时间给出几天毫秒.
所以说我给了这个:1340323100024,就像6/21/2012的中午.现在我想要从一天开始的毫秒,这将是1340262000000(至少我认为这是它应该是什么.)
我如何从1340323100024获得1340262000000?
我试过了
Math.floor(1340323100024/86400000) * 86400000
Run Code Online (Sandbox Code Playgroud)
但这给了我1340236800000,如果我用它创建一个日期对象,它说它是第20个.
我知道我可以从1340323100024创建一个日期对象,然后得到月,年和日,创建一个新的对象,这将给我1340262000000,但我发现它很荒谬我无法弄清楚这么简单的事情.
任何帮助,将不胜感激.
顺便说一句,我在javascript中这样做,如果它有任何区别.
我花了几个小时试图解决这个问题,但我已经没想完了.
我要做的就是归档一个对象,但该方法archiveRootObject一直在返回NO
这是我的代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDirectory = [paths objectAtIndex:0];
cacheDirectory = [cacheDirectory stringByAppendingPathComponent:@"MyAppCache"];
NSString *fullPath = [cacheDirectory stringByAppendingPathComponent:@"archive.data"];
if(![[NSFileManager defaultManager] fileExistsAtPath:fullPath]){
[[NSFileManager defaultManager] createDirectoryAtPath:fullPath withIntermediateDirectories:YES attributes:nil error:nil];
}
NSArray *array = [NSArray arrayWithObjects:@"hello", @"world", nil];
NSLog(@"Full Path: %@", fullPath);
BOOL res = [NSKeyedArchiver archiveRootObject:array toFile:fullPath];
if(res){
NSLog(@"YES");
}else{
NSLog(@"NO");
}
Run Code Online (Sandbox Code Playgroud)
每次我运行它,它都会打印出来NO.
任何帮助,将不胜感激!
我在尝试获取自定义UIView类以淡化它的背景时遇到了麻烦.我查看了以下StackOverflow问题,但它们似乎对我不起作用.
你如何明确动画CALayer的backgroundColor动画?
所以我有一个自定义UIView,用户可以在其中绘制东西.如果他们绘制的内容不正确,我想让背景颜色渐变为红色然后再回到白色.
我在自定义UIView中调用了这个自定义方法
- (void)indicateMistake;
Run Code Online (Sandbox Code Playgroud)
当我调用该方法时,我希望它执行背景色动画,所以我在方法中有这个:
CABasicAnimation* fade = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
fade.fromValue = (id)[UIColor whiteColor].CGColor;
fade.toValue = (id)[UIColor redColor].CGColor;
[fade setDuration:3];
[self.layer addAnimation:fade forKey:@"fadeAnimation"];
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时似乎没有任何事情发生.
那么我尝试了一个愚蠢的旋转动画,看看它是否有效:
CABasicAnimation* rotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotate.toValue = [NSNumber numberWithInt:M_PI];
[rotate setDuration:1];
[self.layer addAnimation:rotate forKey:@"rotateAnimation"];
Run Code Online (Sandbox Code Playgroud)
由于某种原因,自定义UIView旋转.
然后阅读更多StackOverflow答案我试过这个:
[UIView animateWithDuration:3 animations:^{
[self setBackgroundColor: [UIColor redColor]];
} completion:^(BOOL finished) {
[self setBackgroundColor: [UIColor whiteColor]];
}];
Run Code Online (Sandbox Code Playgroud)
这会立即将颜色从红色变回白色.有时它太快我有时看不到它发生.如果我发表评论,[self setBackgroundColor: [UIColor whiteColor]];它会保持红色.但是节点逐渐变为白色到红色的效果.
我已经没有想法..任何帮助将不胜感激!
mongodb ×6
ios ×3
java ×3
javascript ×2
node.js ×2
aws-amplify ×1
calayer ×1
date ×1
eclipse ×1
ejs ×1
express ×1
facebook ×1
find ×1
groovy ×1
highlighting ×1
ide ×1
json ×1
milliseconds ×1
mongoose ×1
nosql ×1
objective-c ×1
react-native ×1
regex ×1
search ×1
time ×1
uiview ×1