小编Kho*_*hon的帖子

如何使用java api用"like"查询mongodb?

这个问题与另一篇文章非常相似

我基本上想要使用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)

但这似乎没有用.

谁有任何想法?

java groovy find mongodb

30
推荐指数
1
解决办法
3万
查看次数

当mongoose模型是新的时,有没有办法自动生成ObjectId?

有没有办法在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)

mongoose mongodb node.js

23
推荐指数
4
解决办法
3万
查看次数

AWS Amplify cloudformation parameter.json 如何工作?

我最近开始使用 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.jsonamplify目录下也定义了。

有谁知道AuthRoleName它使用的是哪个文件?从我的文档阅读,无论是amplify-meta.jsonteam-provider-info.json是自动生成的。

出现了很多这些问题,因为我很好奇是否可以在 cloudformation UI 中手动执行 CF 中自动生成的 CF 模板。当我尝试复制参数部分和元数据部分时,我得到了无效的语法。

这让我认为 amplify 是使用它自己的解析器来生成最终的 CF 模板并在 CF 中执行它。我尝试搜索 cli 存储库,但找不到。

amazon-web-services aws-cloudformation aws-amplify

17
推荐指数
1
解决办法
1466
查看次数

我如何让eclipse将.ejs文件解释为.html?

我最近开始了一个节点项目,我正在使用的两个模块是express和EJS.但默认我通常使用eclipse作为我的IDE,它适用于java和适合html和javascript.但我遇到的一个问题是.ejs文件我得不到标记颜色编码,或任何形式的代码完成.它基本上只是一个普通文件.

有没有人知道如何让eclipse将.ejs文件解释为.html文件?我认为除了偶尔的嵌入标签之外它非常相似.或者推荐更适合node.js/html/ejs开发的IDE.

谢谢!

eclipse ide ejs node.js express

16
推荐指数
2
解决办法
1万
查看次数

如何使用mongoexport仅导出子文档中的特定字段

有没有办法在使用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.

json mongodb

13
推荐指数
1
解决办法
1万
查看次数

如何使用$ ne运算符查询mongodb?

我正在尝试使用正则表达式在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)

它仍然无法正常工作!

有任何想法吗?

java mongodb

6
推荐指数
1
解决办法
1万
查看次数

如何在mongodb中向数组顶部添加值?

如何在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)

提前致谢!

javascript mongodb nosql

6
推荐指数
2
解决办法
4805
查看次数

如何对 mongodb ObjectId 字段进行正则表达式查询

这有点棘手..如何对 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 的一部分的方法,并能够取回具有该模式的所有文档。

提前致谢!

java regex mongodb

5
推荐指数
1
解决办法
4735
查看次数

如何在IntelliJ IDEA中的特定代码块内搜索?

如何在IntelliJ IDEA中的特定代码块或选择进行搜索?

我习惯在Eclipse中使用这个功能.在Eclipse中,您只需双击大括号的开头,它就会突出显示整个代码块.之后你可以在Command+ f
(在Windows上Ctrl+ f)只在突出显示的块中搜索,或者你只需​​要突出显示你需要的内容并只搜索那段代码.

search highlighting intellij-idea

5
推荐指数
1
解决办法
1087
查看次数

How To Use RCT_EXPORT_MODULE React Native

谁能解释一下如何使用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

facebook objective-c ios react-native

5
推荐指数
1
解决办法
3024
查看次数

Javascript:如何用毫秒计算一天的开始?

我想弄清楚从一天开始的时间给出几天毫秒.

所以说我给了这个:1340323100024,就像6/21/2012的中午.现在我想要从一天开始的毫秒,这将是1340262000000(至少我认为这是它应该是什么.)

我如何从1340323100024获得1340262000000?

我试过了

Math.floor(1340323100024/86400000) * 86400000 
Run Code Online (Sandbox Code Playgroud)

但这给了我1340236800000,如果我用它创建一个日期对象,它说它是第20个.

我知道我可以从1340323100024创建一个日期对象,然后得到月,年和日,创建一个新的对象,这将给我1340262000000,但我发现它很荒谬我无法弄清楚这么简单的事情.

任何帮助,将不胜感激.

顺便说一句,我在javascript中这样做,如果它有任何区别.

javascript time date milliseconds

4
推荐指数
1
解决办法
2622
查看次数

NSKeyedArchiver archiveRootObject保持返回NO

我花了几个小时试图解决这个问题,但我已经没想完了.

我要做的就是归档一个对象,但该方法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.

任何帮助,将不胜感激!

nskeyedarchiver ios

3
推荐指数
1
解决办法
5490
查看次数

如何淡化UIView背景色 - iOS 5

我在尝试获取自定义UIView类以淡化它的背景时遇到了麻烦.我查看了以下StackOverflow问题,但它们似乎对我不起作用.

在UIView中将背景颜色从一种颜色淡化为另一种颜色

你如何明确动画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]];它会保持红色.但是节点逐渐变为白色到红色的效果.

我已经没有想法..任何帮助将不胜感激!

calayer uiview ios uibackgroundcolor

1
推荐指数
2
解决办法
1万
查看次数