javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

node.js - 如何在mongoose中排序?

我找不到排序修饰符的文档。 唯一的见解是在单元测试中:spec.lib.query.js#L12

writer.limit(5).sort(['test', 1]).group('name')

但它对我不起作用:

Post.find().sort(['updatedAt', 1]);
trans by 2019-06-25T15:02:52Z

javascript - Mongoose,使用find选择特定字段

我试图只选择一个特定的字段

exports.someValue = function(req, res, next) {
    //query with mongoose
    var query = dbSchemas.SomeValue.find({}).select('name');

    query.exec(function (err, someValue) {
        if (err) return next(err);
        res.send(someValue);
    });
};

但是在我的json响应中我也收到了_id,我的文档架构只有两个fiels,_id和name

[{"_id":70672,"name":"SOME VALUE 1"},{"_id":71327,"name":"SOME VALUE 2"}]

为什么???

trans by 2019-06-18T02:01:12Z

node.js - 通过mongoose将项目推送到mongo数组中

我一直在寻找答案,但我确信我已经迷失了正确的词语来形容我所追求的目标。

基本上我有一个名为'人'的mongodb系列该集合的架构如下:

people: {
         name: String, 
         friends: [{firstName: String, lastName: String}]
        }

现在,我有一个非常基本的快速应用程序连接到数据库并成功创建一个空朋友数组的'人'。

在应用程序的辅助位置,有一个表单来添加朋友。 表单接受firstName和lastName,然后使用名称字段POST,以便引用正确的人员对象。

我正在做的事情是创建一个新的朋友对象,然后将其“推送”到friends数组中。

我知道当我通过mongo控制台执行此操作时,我在查找条件之后使用$ push作为我的第二个参数的更新函数,但我似乎找不到合适的方法来获取mongoose。

db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});

更新:所以,阿德里安的回答非常有帮助。 以下是我为实现目标所做的工作。

在我的app.js文件中,我使用了一个临时路由

app.get('/addfriend', users.addFriend);

在我的users.js文件中我有

exports.addFriend = function (req, res, next)
{
var friend = {"firstName": req.body.fName, "lastName": req.body.lName};
Users.findOneAndUpdate({name: req.user.name}, {$push: {friends: friend}});
};
trans by 2019-06-16T05:08:25Z

node.js - mongoDB / mongoose:如果不是nu,则为唯一

我想知道是否有办法强制一个唯一的集合条目,但只有当条目不为空时。Ë示例模式:

var UsersSchema = new Schema({
    name  : {type: String, trim: true, index: true, required: true},
    email : {type: String, trim: true, index: true, unique: true}
});

在这种情况下,'email'不是必需的,但如果保存'email',我想确保此条目是唯一的(在数据库级别)。

空条目似乎得到值'null',因此每个没有电子邮件的条目都会与'unique'选项崩溃(如果有不同的用户没有电子邮件)。

现在我正在应用程序级别上解决它,但是希望保存该数据库查询。

谢谢

trans by 2019-06-07T11:55:22Z

node.js - 如何获取所有mongoose模型?

如何知道数据已保存的模型数? 有一个userCount的方法,但它似乎不起作用。

var db = mongoose.connect('mongodb://localhost/myApp');
var userSchema = new Schema({name:String,password:String});
userModel =db.model('UserList',userSchema);        
var userCount = userModel.count('name');

userCount是一个Object,哪个方法调用才能得到真正的count

谢谢

trans by 2019-06-04T23:53:56Z

mongodb - 在Mongoose中,我如何按日期排序?(的node.js)

假设我在Mongoose中运行此查询:

Room.find({}, function(err,docs){

}).sort({date:-1}); 

这不起作用!

trans by 2019-06-04T01:20:22Z

mongodb - 使用$或condition的Mongoose的find方法无法正常工作

最近我开始在Nodejs上使用MongoDB和Mongoose。

当我使用$or条件和_id字段的Model.find方法时,Mongoose无法正常工作。

这不起作用:

User.find({
  $or: [
    { '_id': param },
    { 'name': param },
    { 'nickname': param }
  ]
}, function(err, docs) {
   if(!err) res.send(docs);
});

顺便说一句,如果我删除'_id'部分,这就行了!

User.find({
  $or: [
    { 'name': param },
    { 'nickname': param }
  ]
}, function(err, docs) {
   if(!err) res.send(docs);
});

而在MongoDB shell中,两者都能正常工作。

trans by 2019-05-28T16:44:17Z

mongodb - 什么是Mongoose错误对于路径“_id”的值XXX,对ObjectId的转换失败?

当发送请求到_id并且文档GET /customers/foo 41224d776a326fb40f000001不存在时,docnull,我将返回404

  Controller.prototype.show = function(id, res) {
    this.model.findById(id, function(err, doc) {
      if (err) {
        throw err;
      }
      if (!doc) {
        res.send(404);
      }
      return res.send(doc);
    });
  };

但是,当_id与Mongoose期望的“格式”(我猜)例如GET /customers/foo不匹配时,会返回一个奇怪的错误:

CastError:对于路径“_id”处的值“foo”,转换为ObjectId失败。

那么这个错误是什么?

trans by 2019-05-26T03:51:24Z

在Mongoose / MongoDB中创建多字段索引

我试图找到关于如何在Mongoosejs中创建多字段索引的文档,但无济于事。 特别是我有两个需要索引和唯一的字段。 什么是将两个字段索引在一起的示例mongoose模式?

trans by 2019-05-07T17:36:24Z

node.js - Mongodb mongoos中的E11000重复键错误索引

以下是我req.body.email模式中的req.body.password模型 -

var userSchema = new mongoose.Schema({
    local: {
        name: { type: String },
        email : { type: String, require: true, unique: true },
        password: { type: String, require:true },
    },
    facebook: {
        id           : { type: String },
        token        : { type: String },
        email        : { type: String },
        name         : { type: String }
    }
});

var User = mongoose.model('User',userSchema);

module.exports = User;

这就是我在我的控制器中使用它的方式 -

var user = require('./../models/user.js');

这就是我在db中保存它的方法 -

user({'local.email' : req.body.email, 'local.password' : req.body.password}).save(function(err, result){
    if(err)
        res.send(err);
    else {
        console.log(result);
        req.session.user = result;
        res.send({"code":200,"message":"Record inserted successfully"});
    }
});

错误 -

{"name":"MongoError","code":11000,"err":"insertDocument :: caused by :: 11000 E11000 duplicate key error index: mydb.users.$email_1  dup key: { : null }"} 

我检查了db集合,没有这样的重复条目存在,让我知道我做错了什么?

仅供参考 - req.body.emailreq.body.password正在获取值。

我也检查了这篇文章,但没有帮助STACK LINK

如果我完全删除然后它插入文档,否则它会抛出错误“重复”错误,即使我在local.email中有一个条目

trans by 2019-05-05T02:08:19Z

mongodb - 为什么Mongoose有模式和模型?

两种类型的物体似乎彼此如此接近,以至于两者都感到多余。 有两个模式和模型有什么意义?

trans by 2019-04-27T07:58:10Z

node.js - 为什么不能修改Mongoose Query返回的数据(例如:findById)

当我尝试更改Mongoose Query返回的数据的任何部分时,它没有任何效果。

昨天我想用各种_.clone()s,使用临时存储变量等来解决这个问题。最后,就在我疯了的时候,我找到了一个解决方案。 所以我认为将来有人(fyuuuture!)可能有保存问题。

Survey.findById(req.params.id, function(err, data){
    var len = data.survey_questions.length;
    var counter = 0;

    _.each(data.survey_questions, function(sq){
        Question.findById(sq.question, function(err, q){
            sq.question = q; //has no effect

            if(++counter == len) {
                res.send(data);
            }
        });
    });
});
trans by 2019-04-25T16:37:41Z

node.js - 在mongoose中填充嵌套数组

如何在示例文档中填充“组件”:

  {
    "__v": 1,
    "_id": "5252875356f64d6d28000001",
    "pages": [
      {
        "__v": 1,
        "_id": "5252875a56f64d6d28000002",
        "page": {
          "components": [
            "525287a01877a68528000001"
          ]
        }
      }
    ],
    "author": "Book Author",
    "title": "Book Title"
  }

这是我的JS,我通过Mongoose获取文档:

  Project.findById(id).populate('pages').exec(function(err, project) {
    res.json(project);
  });
trans by 2019-04-23T22:24:34Z

node.js - 阻止Mongoose为子文档数组项创建_id属性

如果您有子文档数组,Mongoose会自动为每个数组创建ID。 例:

{
    _id: "mainId"
    subdocArray: [
      {
        _id: "unwantedId",
        field: "value"
      },
      {
        _id: "unwantedId",
        field: "value"
      }
    ]
}

有没有办法告诉Mongoose不为数组中的对象创建id?

trans by 2019-04-18T20:05:57Z

node.js - Mongoose:findOneAndUpdate不返回更新的文档

以下是我的代码

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

var Cat = mongoose.model('Cat', {
    name: String,
    age: {type: Number, default: 20},
    create: {type: Date, default: Date.now} 
});

Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}},function(err, doc){
    if(err){
        console.log("Something wrong when updating data!");
    }

    console.log(doc);
});

我已经在我的mongo数据库中有一些记录,我想运行此代码来更新年龄为17的名称,然后在代码末尾打印出结果。

但是,为什么我仍然从控制台获得相同的结果(不是修改后的名称),但是当我转到mongo db命令行并输入“db.cats.find();”时。 结果来自修改后的名称。

然后我回去再次运行此代码并修改结果。

我的问题是:如果数据被修改,那么为什么我在第一次使用console.log时仍然获得了原始数据。

trans by 2019-04-07T15:26:00Z

javascript - 无法加载c ++ bson扩展

这里有一个总节点noob。 我一直在尝试设置一个示例节点应用程序但每次尝试运行时都会弹出以下错误:

节点应用

Failed to load c++ bson extension, using pure JS version

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: failed to connect to [#$%67890 :27017]
    at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:553:74)
    at EventEmitter.emit (events.js:106:17)
    at null.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15)
    at EventEmitter.emit (events.js:98:17)
    at Socket.<anonymous> (/home/thejazeto/code/nodejs/authen/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:512:10)
    at Socket.EventEmitter.emit (events.js:95:17)
    at net.js:830:16
    at process._tickCallback (node.js:415:13)
trans by 2019-03-29T07:46:19Z

mongodb - 如何在Node.js中使用Mongoose进行分页?

我正在用Node.js和mongoose编写一个webapp。 如何对.find()电话的结果进行分页? 我想在SQL中使用与"LIMIT 50,100"相当的功能。

trans by 2019-03-24T21:02:35Z

node.js - mongodb / mongoose findMany - 查找在数组中列出ID的所有文档

我有一个_ids数组,我想相应地获取所有文档,最好的方法是什么?

就像是 ...

// doesn't work ... of course ...

model.find({
    '_id' : [
        '4ed3ede8844f0f351100000c',
        '4ed3f117a844e0471100000d', 
        '4ed3f18132f50c491100000e'
    ]
}, function(err, docs){
    console.log(docs);
});

该数组可能包含数百个_id。

trans by 2019-03-17T07:14:50Z

node.js - Mongoose中的“__v”字段是什么

我正在使用Mongoose版本3和MongoDB版本2.2。 我注意到__v字段已经开始出现在我的MongoDB文档中。 它与版本控制有关吗? 怎么用?

trans by 2019-03-02T06:12:04Z

javascript - 如何在Mongoose中更新/升级文档?

也许是时候了,也许是我淹没在稀疏的文档中,而且无法绕过Mongoose更新的概念:)

这是交易:

我有一个联系方案和模型(缩短属性):

var mongoose = require('mongoose'),
    Schema = mongoose.Schema;

var mongooseTypes = require("mongoose-types"),
    useTimestamps = mongooseTypes.useTimestamps;


var ContactSchema = new Schema({
    phone: {
        type: String,
        index: {
            unique: true,
            dropDups: true
        }
    },
    status: {
        type: String,
        lowercase: true,
        trim: true,
        default: 'on'
    }
});
ContactSchema.plugin(useTimestamps);
mongoose.model('Contact', ContactSchema); //is this line superflous??
var Contact = mongoose.model('Contact', ContactSchema);

我收到客户的请求,其中包含我需要的字段,因此使用我的模型:

mongoose.connect(connectionString);
var contact = new Contact({
    phone: request.phone,
    status: request.status
});

现在我们解决了这个问题:

  1. 如果我拨打contact,如果具有相同电话号码的联系人已经存在,我将收到错误(正如预期的那样 - 唯一)
  2. 我无法在联系时拨打contact,因为该方法在文档上不存在
  3. 如果我在模型上调用update:
    contact
    我进入了一些无限循环,因为Mongoose更新实现显然不希望将对象作为第二个参数。
  4. 如果我这样做,但在第二个参数我传递请求属性contact的关联数组它的工作原理 - 但后来我没有参考具体的联系人,无法找到其createdAtupdatedAt属性。

毕竟我尝试了底线:给定一个文件contact,如果它存在,如何更新它,如果不存在则如何添加?

谢谢你的时间。

trans by 2019-02-05T22:33:41Z

上一页 1 2 3 4 5 6 下一页 共6页