小编Joh*_*yHK的帖子

下一个和以前的文件

我正在制作一个图库.每个图像都有一个_id,当我正在查看图像时,我想要接下来的3个图像和3个图像.如何在mongodb查询中获取此信息?我认为我可以使用_id排序,因为这是不可靠的.也许用mapReduce或一些特定的查询?

sorting mongodb

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

如何格式化Mongoose调试输出 - 漂亮的打印

如何在控制台中使Mongoose调试输出看起来很漂亮?目前输出显示在一行上.

console mongoose node.js

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

mongoose:如何插入单个子文档 - 而不是数组

在mongoose中,您可以按照以下方式声明子文档的模式:

        var childSchema = new mongoose.Schema({ name: String, age: String });
        var parentSchema = new mongoose.Schema({
            children: [childSchema]
        });
        var Parent = mongoose.model('Parent', parentSchema);
        var Child = mongoose.model('Child', childSchema);

        var child = new Child({name:'Joe', age: '21'});
        var parent = new Parent();

        parent.children = [child];

        parent.save(function(err, saved) {
            if(err) console.error(err);
        });
Run Code Online (Sandbox Code Playgroud)

似乎子文档类型需要是一个数组.我需要能够将子文档保存为单个实例,而不是数组,即:

        var childSchema = new mongoose.Schema({ name: String, age: String });
        var parentSchema = new mongoose.Schema({
            children: childSchema // not an array
        });
        var Parent = mongoose.model('Parent', parentSchema);
        var Child …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

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

iOS 6中的UIPickerView selectrow崩溃

我的应用程序完美地在iOS 5.x中构建和运行,但是当我在iOS 6中调用selectRow:inComponent:animated:方法时它崩溃了UIPickerView.

代码:

[_pickerview selectRow:1 inComponent:0 animated:NO];
Run Code Online (Sandbox Code Playgroud)

我知道这个方法在我用Google搜索时在iOS6中不起作用,但我想知道其他方法来做这个效果吗?

upgrade uipickerview ios ios6

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

MongoDB:如何更新集合中的整个文档

在我的应用程序中,我需要编辑一个文档...,并且在编辑文档时,其他用户仍然可以使用当前的[未更改]版本。例如,当我开始编辑文档时,会在一个单独的集合中创建它的新副本,完成后,我用临时集合的新版本替换当前版本。

假设存储在collection中的原始文档users如下所示:

{
  "_id" : ObjectId("53b986e2fe000000019a5a13"),
  "name" : "Joe",
  "birthDate" : "2080-12-11",
  "publications" : [
    { "title" : "title 1", "description" : "description 1" },
    { "title" : "title 2", "description" : "description 2" }
  ]
}
Run Code Online (Sandbox Code Playgroud)

然后,假设上面的文档被复制到另一个集合(例如users.wip)并按如下所示进行修改:

{
  "_id" : ObjectId("53b986e2fe000000019a5a13"),
  "name" : "Joe",
  "birthDate" : "1980-12-11",
  "publications" : [
    { "title" : "bye bye", "description" : "Blah blah" },
    { "title" : "title 2", "description" : "description 2" },
    { "title" : "title 3", …
Run Code Online (Sandbox Code Playgroud)

mongodb

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

Mongoose findByIdAndUpdate upsert在初始插入时返回null文档

这个基本的Mongoose模型代码在初始调用时返回null结果(gameMgr),但适用于后续调用.它不应该在初始upsert上返回一个填充的结果对象吗?mongo记录存在,并且在相同的情况下第二次运行代码,一切正常,因为没有插入.

如果需要null结果对象,那么创建新对象的适当模式是什么?(或者我是否重新加载另一个 db调用并进一步下降到回调疯狂?)

GameManagerModel.findByIdAndUpdate(
    game._id,
    {$setOnInsert: {user_requests:[]}}, 
    {upsert: true},
    function(err, gameMgr) {
        console.log( gameMgr ); // NULL on first pass, crashes node
        gameMgr.addUserRequest( newRequest );
    }
);
Run Code Online (Sandbox Code Playgroud)

mongoose node.js

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

req.body没有填充表单数据

以下文件是我尝试向我的nodejs(express)服务器提交POST请求.req.body不会填充表单中的任何类型的数据.我做了很多搜索,发现许多针对这个特殊问题的解决方案包括在我的路线之前移动bodyparser并确保在表单字段中包含一个名称.
任何帮助表示赞赏.

app.js

[variables]
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(validator({errorFormatter: -----}));
[other middleware]
require('./passport')(app, passport);
require('./routes')(app, passport);
[start server]
Run Code Online (Sandbox Code Playgroud)

index.jade

block content
h1= title
p Please register below
.error-messages
    ul.errors
        if errors
            each error, i in errors
                li.alert.alert-danger #{error.msg}
form(method='post', action='/signup', enctype='multipart/form-data')
    .form-group
        label Name
        input.form-control(type='text', name='name', placeholder='Enter name')
    .form-group
        label Email
        input.form-control(type='email', name='email', placeholder='Enter email')
    .form-group
        label Username
        input.form-control(type='text', name='username', placeholder='Enter a username')
    .form-group
        label Password
        input.form-control(type='password', name='password')
    .form-group
        label Confirm Password
        input.form-control(type='password', name='passwordConfirm')
    input.btn.btn-primary.pull-right(type='submit', name='submit', value='Sign Up')
Run Code Online (Sandbox Code Playgroud)

index.js …

javascript node.js express

3
推荐指数
2
解决办法
3680
查看次数

评估 MongoDB 聚合查询的复杂性:$lookup 的成本

我正在评估涉及一些 MongoDB 聚合查询的算法的计算成本,所以我试图找出我使用的各种运算符的成本,然后整个查询的成本将只是所有这些的总和因为它们是级联应用的。

我想说 $project、$match 和 $unwind 的成本是 O(n),n 是集合中的文档数,因为我没有任何索引,所以我需要扫描所有文档。

现在我的问题是:新的 $lookup 运算符的成本如何?它对两个集合执行左连接,所以我首先猜测它有点计算两个集合的笛卡尔积,因此成本应该类似于 O(n * m),其中 m 是第二个集合的大小。我对吗?MongoDB 做一些更有效的事情吗?你有关于这个主题的任何参考吗?

algorithm join mongodb aggregation-framework

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

MongoDB 异常:WiredTigerIndex::insert:键太大无法索引

我有一个 MongoDB 集合。

我想改变索引,有一个双索引,而不是一个单一的。

所以我跑了:

db.allnews.ensureIndex( { "url": 1, "source": 1 }, { unique: true } )
Run Code Online (Sandbox Code Playgroud)

但后来我得到了错误:

exception: WiredTigerIndex::insert: key too large to index
Run Code Online (Sandbox Code Playgroud)

并且限制为 1024 字节

那么解决方案是什么...?

(1)以某种方式忽略它..以某种方式跳过这些太长的记录,而不停止整个过程..?

--setParameter failIndexKeyTooLong=false
Run Code Online (Sandbox Code Playgroud)

?? 这可以解决问题吗..?

(2) 查找过长的记录,通过某种查询,并缩短它们..?

(3) 还有什么..?

indexing mongodb

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

如何检查MongoDB服务器是否在PC上运行

我想检查我的 MongoDB 服务器是否正在运行。

我正在关注 thinkster.io 中关于MEAN 堆栈教程的教程。

我们制作持久数据存储的第一步是配置我们的数据模型。为此,我们将使用一个名为 Mongoose 的优秀库在 MongoDB 之上添加一个模式层。在我们开始之前,让我们确保我们的 MongoDB 服务器正在运行。

我尝试了很多东西,但我不知道该怎么做。我的主要问题是您是否必须启动服务器,然后打开另一个 cmd 并键入
mongod &
停止服务器,然后键入
mongod &或在服务器运行时只需键入
mongod &相同的 cmd 而不停止服务器或启动另一个 cmd。

pc mongodb node.js mongoose-schema

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