标签: objectid

MongoDb 对 ObjectId 的范围查询

我想知道是否有人知道是否可以使用如下查询来查询 _id 字段:

{$lte : ObjectId(....) , $gte : ObjectId(...)
Run Code Online (Sandbox Code Playgroud)

, 代替

{$in : [ObjectId( )...lots of ObjectId.....]}
Run Code Online (Sandbox Code Playgroud)

如果性能有所提高(我认为是这样..)

谢谢

mongodb objectid

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

mongodb objectid的一部分最有可能是独一无二的

在我的应用程序中,我让mongo通过其ObjectId方法生成订单ID.

但是在用户测试中,我们有一些担心订单ID是人为的"恐吓",即如果你需要通过电话与某人讨论你的订单,读出24个字母数字字符有点单调乏味.

与此同时,我真的不想存储两个不同的id,一个是"人类可访问的",另一个是内部使用的mongo.

所以我的问题是 - 有没有办法选择长度为6或甚至8的mongo objectId字符串的子字符串,我可以相当确定它是唯一的?

例如,如果我有像这样的mongo objectid

id = '4b28dcb61083ed3c809e0416'
Run Code Online (Sandbox Code Playgroud)

也许我可以拿出来

human_id = id.substr(0,7);
Run Code Online (Sandbox Code Playgroud)

并确保我总是为我的订单获得唯一的ID ...

当然,优点是这些是订单,人类创造的也是如此,因此每毫秒不会有数百万.另一方面,如果两个订单具有相同的缩短ID,那真的会成为一个问题......

---更清楚的解释---

我想问一个更好的问题是:

例如,如果我决定只使用mongo id的最后6个字符,是否有某种"概率"度量,这些6个字符在给定的一周内会重复?

给定一定数量的mongo并行运行,一周内有一定数量的用户等.

mongodb bson objectid

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

为集合中的每个文档生成一个新的 Mongo 对象 ID?

您如何为批量更新中的每个文档创建唯一的对象 ID?

我试过了,

db.foo.update({ objectId: null }, { $set: { objectId: new ObjectId() }}, { multi: true })
Run Code Online (Sandbox Code Playgroud)

但这为每个文档提供了相同的对象 ID。

mongodb objectid

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

为什么mongo文件的_id默认为STRING而不是ObjectID

Meteor的文档说它默认使用STRING作为_id.它的含义是什么?如果我编写一个脚本来导入一个巨大的csv文件,但想给每个文件一个随机字符串,我该怎么办?

mongodb meteor objectid

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

龙卷风电机中如何通过ObjectId查询

我正在尝试使用龙卷风,我的用例是通过对象 ID 进行查询。

我已经看到示例和 ref 可以通过任何其他方式进行查询,但 ObjectID 除外。因为它是独一无二的,所以我想用它来代替查询。

关于如何使用 ObjectId 进行电机查询的任何建议

python mongodb objectid tornado-motor

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

如何在python中检查mongo ObjectID是否有效?

我想验证objectID是否是有效的mongoID字符串.

目前我有:

import bson
try:
  bson.objectid.ObjectId(id)
except:
  pass # do something
Run Code Online (Sandbox Code Playgroud)

我想让我的异常更具体,看起来有一个解决方案,但except bson.objectid.InvalidId最终还是有TypeError: id must be an instance of (str, unicode, ObjectId).

好的,我试图进一步查看并发现is_valid方法bson.is_valid(1)导致另一个错误TypeError: BSON data must be an instance of a subclass of str.

那么如何正确检查我的objectID是否有效?

python mongodb bson pymongo objectid

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

如何从十六进制字符串在 Mongoose 4.0.x 中创建 ObjectId?

mongoose.mongo.Types.ObjectId 没有 fromString 或 fromHexString 函数。似乎 new mongoose.mongo.Types.ObjectId(hexString) 也不会创建对象 ID。

var id = new mongoose.Types.ObjectId(hexString);
db.Record.find({_id:id }, function (err, campaign){
    if(err) console.log(err);
    callback(campaign);
});
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js objectid

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

Object_ID中不同类型的函数

在创建函数时,我倾向于在创建前加上存在性检查

IF Object_ID(N'myfunc', N'IF') IS NOT NULL 
DROP FUNCTION myfunc

GO
CREATE FUNCTION myfunc...
Run Code Online (Sandbox Code Playgroud)

有几种类型的object_id要检查函数:

FN = SQL scalar function
IF = SQL inline table-valued function
TF = SQL table-valued-function
FT = Assembly (CLR) table-valued function
Run Code Online (Sandbox Code Playgroud)

我有一些问题 :

  1. 'IF','TF''FT' 类型有什么区别?

  2. 它非常容易出错

    IF Object_ID(N'myFunc', 'IF') IS NOT NULL
    
    Run Code Online (Sandbox Code Playgroud)

    因为某个时候函数是标量,其他情况下它是表值等,所以我可能会错过正确的类型检查.

我看到人们推荐

IF EXISTS (SELECT * FROM sys.objects 
WHERE object_id = OBJECT_ID(N'myfunc') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
Run Code Online (Sandbox Code Playgroud)

检查所有类型的功能是否足够?你有什么建议?

sql-server function objectid

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

Mongo C# 将 ObjectId 反序列化为字符串

我已经更改了所有 C# 实体:

public ObjectId Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

对此:

[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

因为我需要使用 Rebus 并发送 Id,但如果不添加自定义序列化程序,则 ObjectId 不可序列化。实际上字符串在其他地方更方便(例如:MVC 控制器中的模型绑定)。

无论如何,我认为更改不会有问题,但现在我尝试将 ObjectId 反序列化为字符串时遇到异常:我的 ApplicationUser 类有一个

IEnumerable<string> Friendships { get; set; }
Run Code Online (Sandbox Code Playgroud)

包含来自友谊实体的 Id 列表。它们是作为 ObjectId 创建的,但现在我想将它们作为字符串处理...我现在如何在代码中处理它?

string mongodb bson objectid

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

更新核心数据 swift 4 上的对象

我在核心数据实体中有几项作业,其 jobId 为 -1。我需要获取所有这些项目并通过在我的对象中通过 updateMyJobs 方法传递的正确 id 更新 jobId。我还没有提取 NSManagedObject 类来处理核心数据(即 - 我已经将实体检查为类定义)

这是我的代码:

func updateMyJobs(jobId: Int){
    managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "DBJobsNearBy")
    fetchRequest.predicate = NSPredicate(format: "jobId = '-1'")
    let result = try? managedObjectContext.fetch(fetchRequest)
    let resultData = result as! [DBJobsNearBy]
    for object in resultData {
        print(object.jobId)
        if object.jobId == -1 {
            object.setValue("\(jobId)", forKey: "jobId")
        }
    }
    do {
        try managedObjectContext.save()
        print("saved!")
    } catch let error as NSError  {
        print("Could not save \(error), \(error.userInfo)")
    }
}
Run Code Online (Sandbox Code Playgroud)

我传递了一些整数值并调用上面的方法来更新这样的项目。 …

core-data ios objectid swift

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