我有以下架构的待售物品集合:
var itemSchema = new Schema({
"category" : { type : Schema.Types.ObjectId, ref : 'Category' },
"merchant" : { type : Schema.Types.ObjectId, ref : 'Merchant' },
"rating" : Number
})
Run Code Online (Sandbox Code Playgroud)
我继承了一个聚合查询,该查询返回与按类别划分的类别的项目,按商家分组,组按组中的最大评级排序:
Item.aggregate([
{ "$match" : { category : categoryId, merchant : { $ne : null }}},
{ "$group" : { _id : "$merchant",
rating : { $max : "$rating" },
items : { $push : "$$ROOT" }}},
{ "$sort" : { rating : -1 }}
], { allowDiskUse : true …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个聚合来计算有多少文档具有某些字段(即只有它们存在时才计算它们).对象看起来像这样:
{
"_id" : ObjectId("5617731fe65e0b19101c7039"),
"dateCreated" : ISODate("2015-10-09T07:56:15.068Z"),
"dateSent" : ISODate("2015-10-09T07:56:16.682Z"),
"dateAttempted" : ISODate("2015-10-09T07:56:16.682Z")
},
{
"_id" : ObjectId("561e37bb537d381bb0ef0ae2"),
"dateCreated" : ISODate("2015-10-14T11:08:43.306Z"),
"dateSent" : ISODate("2015-10-14T11:09:51.618Z"),
"dateAttempted" : ISODate("2015-10-14T11:09:51.618Z"),
"dateViewed" : ISODate("2015-10-15T10:09:50.618Z"),
"dateOpened" : ISODate("2015-10-15T10:10:01.618Z")
}
Run Code Online (Sandbox Code Playgroud)
我想迭代所有文档,计算字段存在的位置.期望的输出:
{
"total" : 1000,
"created" : 1000,
"sent" : 990,
"attempted" : 995
"viewed" : 800,
"opened" : 750
}
Run Code Online (Sandbox Code Playgroud)
如果此输出可以每天分组,则可获得奖励积分!我不希望为范围中的每个日期执行新的聚合.
这是我到目前为止所做的,但是没有用; 它为每个字段返回零
[
{
"$group": {
"_id": {
"$dayOfMonth": "$dateCreated"
},
"total": {
"$sum": 1
},
"sent": {
"$sum": "$dateSent"
},
"attempted": { …Run Code Online (Sandbox Code Playgroud) 我是mongodb的新手,我有一个像这样的数据模型
{
last_updated: Date.now(),
csgo_items:[
{name: 'name', price: 1},
{name: 'name', price: 1},
{name: 'name', price: 1}
]
}
Run Code Online (Sandbox Code Playgroud)
我有一个“ last_updated”,然后有一个巨大的csgo物品清单。
我的问题是。我需要两个模式吗?一个是外层的两个属性,另一个是我的csgo项目模型的架构?
如果我这样做,我的模式将如何显示?
我有这样的项目架构。
var ItemSchema = new Schema({
price: Number,
name: String,
});
Run Code Online (Sandbox Code Playgroud)
我是否还需要另一个模式来为我的外部模式设置?
var CsgoSchema = new Schema({
last_updated: Date,
item: Array,
});
Run Code Online (Sandbox Code Playgroud)
它是否正确?
正如标题所示,我在回发时维护代码时遇到问题.我在Head部分有一堆jQuery代码,这个工作正常,直到发生回发,之后它停止运行!
我怎样才能解决这个问题?头部没有在回发上阅读,有没有办法可以强制这种情况发生?
JavaScript是:
<script type="text/javascript">
$(document).ready(function()
{
$('.tablesorter tbody tr').tablesorter();
$('.tablesearch tbody tr').quicksearch({
position: 'before',
attached: 'table.tablesearch',
stripeRowClass: ['odd', 'even'],
labelText: 'Search:',
delay: 100
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 在我的项目中,我正在将数据从MongoDB传输到SparkSQL表以进行基于SQL的查询。但是Spark SQL让我创建了临时文件。当我要查询某些内容时,执行时间非常长,因为数据传输和映射操作会花费太多时间。
那么,我可以减少执行时间吗?我可以创建永久性Spark SQL表吗?我可以使用JDBC查询永久表吗?
我要添加代码和执行时间结果。我正在独立模式下执行所有操作。
package com.mongodb.spark.sql;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.sql.DataFrame;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SQLContext;
import org.bson.BSONObject;
import com.mongodb.hadoop.MongoInputFormat;
import com.mongodb.spark.demo.Observation;
import com.mongodb.spark.demo.Sensor;
import scala.Tuple2;
public class SparkSqlMongo {
public static void main(String[] args) {
Configuration conf = new Configuration();
conf.set("mongo.job.input.format", "com.mongodb.hadoop.MongoInputFormat");
conf.set("mongo.input.uri", "mongodb://localhost:27017/test.observations");
Configuration sensConf = new Configuration();
sensConf.set("mongo.job.input.format", "com.mongodb.hadoop.MongoInputFormat");
sensConf.set("mongo.input.uri", "mongodb://localhost:27017/test.sens");
SparkConf sconf = new SparkConf().setMaster("local[2]").setAppName("SQL DENEME").set("nsmc.connection.host",
"mongodb:");
JavaSparkContext sc = new JavaSparkContext(sconf);
SQLContext sql = new SQLContext(sc); …Run Code Online (Sandbox Code Playgroud) 我有项目架构,其中我有各自餐厅的项目详细信息.我必须通过'类型'和'类别'找到特定餐厅和团体的所有项目(类型和类别是项目架构中的字段),我能够按照我的要求对项目进行分组,但我无法获得完整的项目宾语.我的查询:
db.items.aggregate([{
'$match': {
'restaurant': ObjectId("551111450712235c81620a57")
}
}, {
'$group': {
id: {
'$push': '$_id'
}
, _id: {
type: '$type'
, category: '$category'
}
}
}, {
$project: {
id: '$id'
}
}])
Run Code Online (Sandbox Code Playgroud)
我已经看到一种方法,通过将每个字段值添加到组然后投影它.因为我的Item模式中有很多字段,所以我觉得这对我来说不是很好的解决方案,我是否可以获得完整的对象而不是Ids.
我在编写查询时遇到问题,无法检索Story文档中嵌入的Comments数组的最后一个对象.
当我执行db.stories.find()时,我的集合目前看起来像这样:
{
"_id" : ObjectId("55d3a39565698bbc68079e31"),
"author" : "Steven Chen",
"link" : "COCO",
"title" : "COCO",
"date" : ISODate("2015-08-18T21:28:53.629Z"),
"comments" : [
{
"author" : "Steven",
"text" : "Major",
"_id" : ObjectId("55d3a39565698bbc68079e32"),
"date" : ISODate("2015-08-18T21:28:53.632Z")
},
{
"text" : "Canada",
"author" : "Steven",
"_id" : ObjectId("55d3a39a65698bbc68079e33"),
"date" : ISODate("2015-08-18T21:28:58.001Z")
},
{
"text" : "Usa",
"author" : "Steven",
"_id" : ObjectId("55d3a39c65698bbc68079e34"),
"date" : ISODate("2015-08-18T21:29:00.877Z")
}
],
"__v" : 0
}
Run Code Online (Sandbox Code Playgroud)
我想根据Story文档的_id给出的日期检索最后一条评论.
我的代码的上下文是有一个带有注释列表的Story帖子,我想检索最后的注释并使用ajax将其作为JSON发送到我的客户端JS,以便可以使用最新/最新注释更新视图.
在这种情况下,带有"text:"Usa"的评论应该是获取的评论.
有人可以提供正确的方法来做到这一点,如果你能解释原因会更好吗?谢谢!
我从 mongodb 获得了不同的字段值。当我在命令行中运行以下查询时,效果很好。
db.celldata.distinct("tenentId")
我正在使用 Mongo java 3.0 驱动程序,使用以下查询检索不同的值
MongoCursor<String> iterator = coll.distinct("tenantId", String.class).iterator();
当我运行查询时,出现以下异常
org.bson.BsonInvalidOperationException: readString can only be called when CurrentBSONType is STRING, not when CurrentBSONType is NULL.
有没有一个很好的实际例子,说明如何在lodash库中使用_.after方法?
我有以下聚合查询,它给出给定日期范围内的计数 (countA)。在本例中为 01/01/2016-03/31/2016。是否可以添加第二个日期愤怒期(例如 04/01/2016-07/31/2016)并将其计为 countB?
db.getCollection('customers').aggregate(
{$match: {"status": "Closed"}},
{$unwind: "$lines"},
{$match: {"lines.status": "Closed"}},
{$match: {"lines.deliveryMethod": "Tech Delivers"}},
{$match: {"date": {$gte: new Date('01/01/2016'), $lte: new Date('03/31/2016')}}},
{$group:{_id:"$lines.productLine",countA: {$sum: 1}}}
)
Run Code Online (Sandbox Code Playgroud)
提前致谢
mongodb ×6
java ×2
javascript ×2
mongoose ×2
apache-spark ×1
asp.net ×1
jquery ×1
lodash ×1
mongodb-java ×1
node.js ×1
postback ×1