javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

python-在日期时间的月,日,年...上查询Mongodb

我正在使用mongodb并且以这种方式将datetime存储在数据库中

对于日期“ 17-11-2011 18:00”,我存储:

date = datetime.datetime(2011, 11, 17, 18, 0)
db.mydatabase.mycollection.insert({"date" : date})

我想这样的要求

month = 11
db.mydatabase.mycollection.find({"date.month" : month})

要么

day = 17
db.mydatabase.mycollection.find({"date.day" : day})

有人知道如何执行此查询吗?

trans by 2020-08-06T20:27:04Z

JavaScript-猫鼬查找/更新子文档

我的文件夹文件夹有以下架构:

var permissionSchema = new Schema({
    role: { type: String },
    create_folders: { type: Boolean },
    create_contents: { type: Boolean }
});

var folderSchema = new Schema({
    name: { type: string },
    permissions: [ permissionSchema ]
});

因此,对于每个页面,我可以拥有许多权限。 在CMS中,有一个面板,其中列出了所有文件夹及其权限。 管理员可以编辑一个权限并保存。

我可以很容易地用其权限数组保存整个Folder文档,其中只修改了一个权限。 但是我不想保存所有文档(实际架构中包含更多字段),所以我这样做了:

savePermission: function (folderId, permission, callback) {
    Folder.findOne({ _id: folderId }, function (err, data) {
        var perm = _.findWhere(data.permissions, { _id: permission._id });                

        _.extend(perm, permission);

        data.markModified("permissions");
        data.save(callback);
    });
}

但是问题是烫发总是不确定的! 我试图以这种方式“静态地”获取许可:

var perm = data.permissions[0];

而且效果很好,所以问题在于Underscore库无法查询权限数组。 因此,我想有一种更好的方法(和工作方式)来获取所提取文档的子文档。

任何想法?

附注:我解决了使用“ for”循环检查data.permission数组中的每个项目并检查data.permissions [i] ._ id == Permission._id的问题,但是我想要一个更聪明的解决方案,我知道有一个解决方案!

trans by 2020-08-06T04:57:18Z

python-如何将pymongo.cursor.Cursor转换为字典?

我正在使用pymongo查询区域中的所有项目(实际上是在地图上查询区域中的所有场所)。 在搜索球形区域之前,我使用了db.command(SON()),它可以为我返回一个字典,并且在字典中有一个名为results的键,其中包含场所。 现在,我需要在一个正方形区域中搜索,建议使用db.places.find,但是,这给我返回了pymongo.cursor.Cursor类,我不知道如何从中提取场地结果。

有谁知道我应该将光标转换成字典并提取结果,还是使用另一种方法来查询方形区域中的项目?顺便说一句,db是pymongo.database.Database类

这些代码是:

>>> import pymongo
>>> db = pymongo.MongoClient(host).PSRC 
>>> resp = db.places.find({"loc": {"$within": {"$box": [[ll_lng,ll_lat], [ur_lng,ur_lat]]}}})
>>> for doc in resp:
>>>     print(doc)

我有ll_lng,ll_lat,ur_lng和ur_lat的值,使用这些值,但此代码中什么都不会打印

trans by 2020-07-24T11:11:59Z

mongodb-如何获取mongo命令结果到平面fi

如何将MongoDB命令的结果导出到平面文件

例如,如果我要将db.collectionname.find() >> "test.txt"放入平面文件中。

我尝试了db.collectionname.find() >> "test.txt"似乎不起作用。

trans by 2020-07-19T00:29:03Z

mongodb-在mongo sh中将Mongo查询输出打印到文件

与Mongo一起工作了2天,我有SQL背景,所以请多多包涵。 与mysql一样,在MySQL命令行中并将查询结果输出到计算机上的文件中非常方便。 我试图了解如何在外壳中使用Mongo进行相同操作

我可以通过在shell外部并执行以下命令来轻松获取所需查询的输出:

mongo localhost:27017/dbname --eval "printjson(db.collectionName.findOne())" >> sample.json

上面的方法很好,但是需要我退出mongo shell或打开一个新的终端选项卡才能执行此命令。 如果我仍然可以在外壳中执行此操作,那将非常方便。

附注:问题是我在SO上发布的问题的分支

trans by 2020-07-03T07:11:55Z

mongodb-insert(),insertOne()和insertMany()方法有什么区别?

MongoDB上的insert()、2944561112996496385和insertMany()方法之间有什么区别? 在什么情况下我应该使用每个?

我阅读了文档,但不清楚何时使用每个文档。

trans by 2020-07-01T01:40:30Z

Mongodb find()查询:仅返回唯一值(无重复)

这个问题已经在这里有了答案:

  • 获取不同的记录值 5个答案

我有一些文件:

{
    "networkID": "myNetwork1",
    "pointID": "point001",
    "param": "param1"
}
{
    "networkID": "myNetwork2",
    "pointID": "point002",
    "param": "param2"
}
{
    "networkID": "myNetwork1",
    "pointID": "point003",
    "param": "param3"
}
...

pointID是唯一的,但networkID不是。

是否有可能以这样的方式查询Mongodb:[myNetwork1,myNetwork2]

现在我只设法返回了[myNetwork1,myNetwork2,myNetwork1]

我需要一个唯一的networkID列表来填充自动完成的select2组件。由于我可能有多达5万个文档,因此我更希望mongoDb在查询级别过滤结果。

trans by 2020-06-30T22:33:19Z

如何在MongoDB内部列表中插入元素?

我在MongoDB中存储了以下文档:

{
    name: 'myDoc',
    list: [
        {
            id:1
            items:[
                {id:1, name:'item1'},
                {id:2, name:'item2'}
            ]
        },
        {
            id:2
            items:[
                {id:1, name:'item1'},
                {id:3, name:'item3'}
            ]
        }
    ]
}

我找到了一种使用$addToSet将元素添加到“列表”的方法,但是我找不到一种将项目添加到“列表”的特定列表的方法。

例如我得到以下内容:

{id:5, name:'item5'} 

我想将其添加到ID:2列表中的元素项中。

trans by 2020-06-21T22:55:46Z

mongodb-无法启动mongod.service:找不到单元mongod.service

我遵循mongodb安装文档中提到的所有步骤。

对于Ubuntu 16.04

步骤1:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

步骤2:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

步骤3:

sudo apt-get update

步骤4:

sudo apt-get install -y mongodb-org

步骤5:

sudo service mongod start

当我启动mongodb时出现错误

"Failed to start mongod.service: Unit mongod.service not found." please help me to solve this.
trans by 2020-06-21T18:48:26Z

如何在mongodb中使用$ lookup加入多个集合

我想使用聚合$ lookup在MongoDB中加入两个以上的集合。 有可能参加吗? 给我一些例子。

这里有三个集合:

“用户”

{    
"_id" : ObjectId("5684f3c454b1fd6926c324fd"),
    "email" : "admin@gmail.com",
    "userId" : "AD",
    "userName" : "admin"
}

“用户信息”

{
    "_id" : ObjectId("56d82612b63f1c31cf906003"),
    "userId" : "AD",
    "phone" : "0000000000"
}

“用户角色”

{
    "_id" : ObjectId("56d82612b63f1c31cf906003"),
    "userId" : "AD",
    "role" : "admin"
}
trans by 2020-06-20T16:52:57Z

mongodb insert命令中是否有“ upsert”选项?

我知道这可能是一个愚蠢的问题,但是我在电子书上阅读到,MongoDB插入中有upsert选项。 我找不到与此有关的适当文档。 有人可以教育我吗?

trans by 2020-02-13T15:20:00Z

MongoDB-$ size的参数必须是一个数组,但类型为:EOO / missing

尝试使用icCube创建MongoDB数据源。 想法是将数组的大小作为新字段返回。 就像是 :

$project:
{ 
 "people": 1, 
 "Count myFieldArray" : {$size : "$myFieldArray" }
}

但是我得到一些记录以下错误:

The argument to $size must be an Array, but was of type: EOO

如果字段为空或不是数组(消除错误),有没有办法将size设为0?

trans by 2020-02-13T03:02:28Z

MongoDB每日分组汇总

我在mongo中有一些文档看起来像这样:

{
  _id : ObjectId("..."),
  "make" : "Nissan",
  ..
},
{
  _id : ObjectId("..."),
  "make" : "Nissan",
  "saleDate" :  ISODate("2013-04-10T12:39:50.676Z"),
  ..
}

理想情况下,我希望能够按制造商来计算每天售出的车辆数量。 然后,我想查看今天或过去7天之类的窗口。

我用一些难看的代码就能完成日常工作

db.inventory.aggregate(
  { $match : { "saleDate" : { $gte: ISODate("2013-04-10T00:00:00.000Z"), $lt: ISODate("2013-04-11T00:00:00.000Z")  } } } ,
  { $group : { _id : { make : "$make", saleDayOfMonth : { $dayOfMonth : "$saleDate" } }, cnt : { $sum : 1 } } }
)

然后得出结果

{
  "result" : [
    {
      "_id" : {
        "make" : "Nissan",
        "saleDayOfMonth" : 10
      },
      "cnt" : 2
    },
    {
      "_id" : {
        "make" : "Toyota",
        "saleDayOfMonth" : 10
      },
      "cnt" : 4
    },
  ],
  "ok" : 1
}

这样就可以了,但是我更希望不必在查询中更改两个datetime值。 然后,如上所述,我希望能够运行此查询(同样,不必每次都对其进行修改),并看到上周按天划分的相同结果。

哦,这是我一直用于查询的示例数据

db.inventory.save({"make" : "Nissan","saleDate" :  ISODate("2013-04-10T12:39:50.676Z")});
db.inventory.save({"make" : "Nissan"});
db.inventory.save({"make" : "Nissan","saleDate" :  ISODate("2013-04-10T11:39:50.676Z")});
db.inventory.save({"make" : "Toyota","saleDate" :  ISODate("2013-04-09T11:39:50.676Z")});
db.inventory.save({"make" : "Toyota","saleDate" :  ISODate("2013-04-10T11:38:50.676Z")});
db.inventory.save({"make" : "Toyota","saleDate" :  ISODate("2013-04-10T11:37:50.676Z")});
db.inventory.save({"make" : "Toyota","saleDate" :  ISODate("2013-04-10T11:36:50.676Z")});
db.inventory.save({"make" : "Toyota","saleDate" :  ISODate("2013-04-10T11:35:50.676Z")});

提前致谢,凯文

trans by 2020-02-03T15:54:42Z

javascript-如何从猫鼬的集合中排除一个特定字段?

我有一个带Mongoose ODM(Mongoose 3.3.1)的NodeJS应用程序。 我想从集合中检索除1外的所有字段。例如:我有一个具有6个场的产品集合,我想选择除“ Image”外的所有场。 我使用了“排除”方法,但出现了错误。这是我的代码。

    var Query = models.Product.find();
    Query.exclude('title Image');

    if (req.params.id) {
        Query.where('_id', req.params.id);
    }


    Query.exec(function (err, product) {
        if (!err) {
            return res.send({ 'statusCode': 200, 'statusText': 'OK', 'data': product });
        } else {
            return res.send(500);
        }
    });

但这返回错误

Express
500 TypeError: Object #<Query> has no method 'exclude'.........

我也尝试了var Query = models.Product.find().exclude('title','Image');var Query = models.Product.find({}).exclude('title','Image');但得到了同样的错误。 如何从猫鼬的集合中排除一个/(两个)特定字段。

trans by 2020-01-29T15:44:14Z

mongodb-仅返回嵌套数组中匹配的子文档元素

主要集合是零售商,其中包含商店阵列。 每个商店都包含一系列优惠(您可以在此商店中购买)。 此提供数组具有大小数组。 (请参见下面的示例)

现在,我尝试查找所有报价,大小为size

{
    "_id" : ObjectId("56f277b1279871c20b8b4567"),
    "stores" : [
        {
        "_id" : ObjectId("56f277b5279871c20b8b4783"),
        "offers" : [
            {
                "_id" : ObjectId("56f277b1279871c20b8b4567"),
                "size": [
                    "XS",
                    "S",
                    "M"
                ]
            },
            {
                "_id" : ObjectId("56f277b1279871c20b8b4567"),
                "size": [
                    "S",
                    "L",
                    "XL"
                ]
            }
        ]
    }
}

我已经尝试过以下查询:size

我期望这样的输出:

 {
"_id" : ObjectId("56f277b1279871c20b8b4567"),
"stores" : [
    {
        "_id" : ObjectId("56f277b5279871c20b8b4783"),
        "offers" : [
            {
                "_id" : ObjectId("56f277b1279871c20b8b4567"),
                "size": [
                    "S",
                    "L",
                    "XL"
                ]
            }
        ]
    }
}

但是我的查询的输出还包含与size XS,X和M不匹配的报价。

如何强制MongoDB仅返回与查询匹配的商品?

问候和感谢。

trans by 2019-11-06T16:29:41Z

身份验证-MongoDB“ root”我们

MongoDB是否有超级UNIX之类的“ root”用户? 我一直在看[http://docs.mongodb.org/manual/reference/user-privileges/],并尝试了许多组合,但是它们似乎都缺少某个区域或另一个区域。 当然,在上面列出的所有角色中,首先要有一个角色。

trans by 2019-10-24T01:56:52Z

身份验证-MongoDB“ root”我们

MongoDB是否有超级UNIX之类的“ root”用户? 我一直在看[http://docs.mongodb.org/manual/reference/user-privileges/],并尝试了许多组合,但是它们似乎都缺少某个区域或另一个区域。 当然,在上面列出的所有角色中,首先要有一个角色。

trans by 2019-10-14T01:39:09Z

mongodb-如何按插入时间对Meteor集合进行排序?

我正在使用Meteor进行第一个项目,并且在排序时遇到了一些困难。

我有一个表单,用户输入格言,然后将其显示在列表中。 当前,最近的格言自动显示在列表的底部。 有没有一种简单的方法可以将最新的信息显示在列表的顶部?

我试过了:

   Template.list.aphorisms = function () {
    return Aphorisms.find({}, {sort: {$natural:1}});
};

感到很困惑,因为Meteor文档没有太多示例。

trans by 2019-10-12T06:42:13Z

猫鼬-MongoDB的$ in子句是否保证ord

使用MongoDB的$in子句时,返回文档的顺序是否始终与数组参数的顺序相对应?

trans by 2019-09-29T09:55:08Z

MongoDB:如何查询字段为null或未设置的记录?

我有一个Emails文档,其中包含一个sent_at日期字段:

{
  'sent_at': Date( 1336776254000 )
}

如果尚未发送此Emails,则sent_at字段为空或不存在。

我需要得到所有已发送/未发送的计数Emails.我一直试图找出查询此信息的正确方法。 我认为这是获得发送计数的正确方法:

db.emails.count({sent_at: {$ne: null}})

但是我应该如何计算未发送的数量呢?

trans by 2019-08-08T11:32:16Z

1 2 下一页 共2页