当前位置:首页 » 代码百科 » mongodb相关股票代码
扩展阅读
深市股票何时交易 2025-06-20 00:51:30
沪深两市股票大宗交易 2025-06-20 00:46:43
常州亚邦医药股票代码 2025-06-20 00:37:40

mongodb相关股票代码

发布时间: 2021-10-13 23:48:48

① mongodb 支持联合查询吗

mongodb 支持联合查询

下图表示帖子和用户两个Collection的ER图:

首先将authors集合中的用户对象查询出来,放在一个变量author中,代码如下:

Shell代码

>author=db.authors.findOne({name:"chenzhou"})

{

"_id":ObjectId("5030ba7621bdee44765b2147"),

"name":"chenzhou",

"email":"[email protected]"

}

通过用户对象author来获取帖子列表,代码如下:

Shell代码

>for(varpost=db.posts.find({"author_name":author.name});post.hasNext();){

...printjson(post.next().title);

...}

"HelloMongodb"

"HelloWorld"

"HelloMyFriend"

② mongodb 聚合查询问题

db.user.find().count(); ==> 这个快是因为 _id作为主键是一个相对小的索引

而对应的mysql里是走的全表扫描

如果你设计的表结构很满足范式,那么其实并不是MongoDB所擅长的场景,你不会觉得mongodb有多快

③ mongodb千万级别的数据分析怎么做

在MongoDB中,文档是对数据的抽象,它被使用在Client端和Server端的交互中。所有的Client端(各种语言的Driver)都会使用这种抽象,它的表现形式就是我们常说的BSON(Binary JSON )。
BSON是一个轻量级的二进制数据格式。
MongoDB能够使用BSON,并将BSON作为数据的存储存放在磁盘中。
当Client端要将写入文档,使用查询等等操作时,需要将文档编码为BSON格式,然后再发送给Server端。同样,Server端的返回结果也是编码为BSON格式再放回给Client端的。

④ 怎么在MongoDB中执行Javascript代码

以前并没有留意用JavaScript管理MongoDB,不过这个还是很有用的功能。特别是可以写一些定时脚本,定期检查数据库,做一些管理任务。
1. mongo shell中可以直接运行JavaScript代码
比如:
> new Date()
ISODate("2013-12-12T07:37:00.074Z")
> x = new Date();
ISODate("2013-12-12T07:37:05.724Z")
> x.getTime();
1386833825724
> var y = Date();
> y.getTime()
Thu Dec 12 15:37:26.805 TypeError: Object Thu Dec 12 2013 15:37:21 GMT+0800 (CST) has no method 'getTime'
>

如果想获得epoch以来的毫秒数,必须用new Date()。
而Date(),似乎就只是一个函数,返回一个字符串而已。没什么大作用,反而容易混淆人的概念。
b. Date对象提供了getTime()
2. 查询语句中,可以用$where operator来执行JavaScript函数, 比如:
db.display.find({$and: [{$where: function() {return new Date().getTime(

3. 可以将代码写到一个js文件中,然后用mongo命令执行
比如:下面将当前时间和last_active_time字段的值的差大于300秒的,状态为offline的document找出来,并显示。
cursor = db.display.find({$and: [{$where: function() {return new Date().getTime() / 1000 - this.last_active_time > 300}}, {status: "offline"}]})
while (cursor.hasNext()) {
printjson(cursor.next());
}

然后这样执行:
mongo localhost/mydb test.js

⑤ mongodb和mongoose的区别

mongodb是最原始的驱动mongoose,是基于mongodb的封装,mongoose更节省代码量,mongodb支持原生的mongo数据库的命令写法和最新的语法
Mongoose只不过是封装了MongoDB的操作的一个对象模型库

⑥ mongodb 怎么实现类似 case when then

mongodb中使用 $cond条件来完成类似case when then的功能。
node.js参考代码
exports.sumByGSAsync = function (opts) {
var results = {error_code: -1, error_msg: "error"};
var beginDate=opts.beginDate;
var endDate=opts.endDate;
var pipeline =[
{
$match: {
sjbh: {$gte: beginDate, $lte:endDate}
}
},
{
$group: {
_id: "$gsbh",
totaltxl: {$sum: { $cond: { if: { $ne: [ "$totalnum","" ] }, then:"$txl" , else: 0 }}},
totalbmynum: {$sum: "$bmynum"}
}
},
{
$project: {
_id: 0,
gsbh: "$_id",
totaltxl: "$totaltxl",
totalbmynum: "$totalbmynum",
ratio: { $divide: [ "$totalbmynum", { $cond:{if: { $eq: [ "$totaltxl",0 ] }, then:1 , else: "$totaltxl" }}] }
}
},
{$sort: {ratio: -1}}
];

return opts.dbs.csdb.collection("permydfx").aggregateAsync(pipeline)
.timeout(opts.configs.timeoutnormal)
.then(function (value) {
.....
});
}

⑦ java代码怎么查询mongodb

String ageStr = "function (){return parseFloat(this.age) == 19 || parseFloat(this.age) == 30};";

java操作mongodb进行查询,常用筛选条件的设置如下:
条件列表:
BasicDBList condList = new BasicDBList();
临时条件对象:
BasicDBObject cond = null;
DBCollection coll = db.getCollection("A");
1、$where
在某种应用场合,若要集合A查询文档且要满足文档中某些属性运算结果,可以编写一脚本函数用where进行设置,比如:
某集合中存放的用户信息,包括姓名、年龄、手机号、地址等,要筛选出年龄大于20且小于等于40的用户,我们可以这样:
String ageStr = "function (){return parseFloat(this.age) > 20 && parseFloat(this.age) <= 40};";
cond = new BasicDBObject();
cond.put("$where",ageStr);
放入条件列表
condList.add(cond);
2、$in
接1实例中,要查询年龄为23、40、50的用户信息,我们可以这样:
创建一个临时的条件列表对象,将条件值分别添加进去
BasicDBList values = new BasicDBList();
values.add(23);
values.add(40);
values.add(50);
cond = new BasicDBObject();
cond.put("age",new BasicDBObject("$in",values));
放入条件列表
condList.add(cond);
3、模糊匹配
接1实例中,要按照用户的姓名进行模糊查询,如:王,我们可以这样做:
使用不区分大小写的模糊查询
3.1完全匹配
Pattern pattern = Pattern.compile("^王$", Pattern.CASE_INSENSITIVE);
3.2右匹配
Pattern pattern = Pattern.compile("^.*王$", Pattern.CASE_INSENSITIVE);
3.3左匹配
Pattern pattern = Pattern.compile("^王.*$", Pattern.CASE_INSENSITIVE);
3.4模糊匹配
Pattern pattern = Pattern.compile("^.*王.*$", Pattern.CASE_INSENSITIVE);
cond = new BasicDBObject();
cond.put("name",cond);
放入条件列表
condList.add(cond);
4、$gte/$lte/$gt/$lt
接1实例中,要筛选出年龄大于20且小于等于40的用户,我们可以这样:
cond = new BasicDBObject();
cond.append("age",new BasicDBObject("$gt",20));
cond.append("age",new BasicDBObject("$lte",40));
放入条件列表
condList.add(cond);
在日常的查询中筛选的条件可能会有多个,而且多个条件之间都是且的关系,结合上例1、2、3、4中
将每种条件添加到条件列表中,我可以这样:
BasicDBObject searchCond = new BasicDBObject();
searchCond.put("$and", condList);
然后查询数据:
DBCursor ret = coll.find(searchCond);
以上为常用的筛选条件的设置方法,其他的后续在更新。

⑧ MongoDB和MySQL的区别

1、稳定性

2、索引,索引放在内存中,能够提升随机读写的性能。如果索引不能完全放在内存,一旦出现随机读写比较高的时候,就会频繁地进行磁盘交换,MongoDB的性能就会急剧下降

3、占用的空间很大,因为它属于典型空间换时间原则的类型。那么它的磁盘空间比普通数据库会浪费一些,而且到目前为止它还没有实现在线压缩功能,

在MongoDB中频繁的进行数据增删改时,如果记录变了,例如数据大小发生了变化,这时候容易产生一些数据碎片,出现碎片引发的结果,

一个是索引会出现性能问题,

另外一个就是在一定的时间后,所占空间会莫明其妙地增大,所以要定期把数据库做修复,定期重新做索引,这样会提升MongoDB的稳定性和效率。

在最新的版本里,它已经在实现在线压缩,估计应该在2.0版左右,应该能够实现在线压缩,可以在后台执行现在repair DataBase的一些操作。如果那样,就解决了目前困扰

我们的大问题。

4、MongoDB对数据间的事务关系支持比较弱

5、运维不方便

⑨ 千万别用MongoDB真的吗

为什么这么说?数据库应该是正确的,或是尽可能的正确,因为数据库的错误会比其它错误危害更大。不仅仅是因为其对运行,性能,开销,和其价值影响巨大,还因为其连带的东西。匆忙去去移植 TB 级的数据相比起去修改代码中的一个逻辑错误来说是一个很巨大的工作。而在系统出问题后需要恢复 TB 级的数据,你会被硬盘的速度所限制,你会有一种绝望的感觉。数据库是一个很复杂的系统,对于者来说就像一个黑盒一样。你需要对你所采用的数据库持绝对信任的态度,信任它会做正确的事,并会保持一致性和可用性。为什么 MongoDB 会流行?说句公道话,我们必需承认 MongoDB 是流行的,因为下面这些原因让其流行变得很合理:它非常容易地运行非常的 Sche 模型,而且可以很容易地和 JSON 类的数据结果映射起来,这对于程序员来于有很大的感染力(它完全符合程序员的逻辑思维),而且,程序员总是在项目可以做技术选型的人。成熟和健壮,track record,被真实的 Use Case 测试过,等等。对于那些喜欢选择成熟的技术的系统和运营专业来说,这是一个很典型的选择。它单系统,低并发读的性能测试非常令人惊讶,而对于那些没有经验的评估者来说,这基本上来说是最重要的。现在,你可能正在一个随便玩一玩的,或是一个原型,或是那种只考虑速度不考虑别的的项目。老实说,对于这种项目,无所谓你用什么样的技术,只要搞定工作就行了。但是,如果你想要在 MongoDB 上搞一个大规模的系统,在上面运行真实的业务,那么,请不要用 MongoDB。转载,仅供参考。

⑩ mongodb中如何实现类似于sql中的groupby

mongodb中实现sql中德group by可以采用聚合函数aggregate
参考代码:

/**
* select avg(pop) avgCitypop from zipsController group by state
*/
exports.avgGroupByStateCityDemo2Async = function (opts) {
var results = {error_code: -1, error_msg: "error"};
var pipeline =[
{
$group: {
_id: "$state",
avgCitypop: {$avg: "$pop"}
}
}

];

return opts.dbs.csdb.collection("zipsController").aggregateAsync(pipeline)