标签: objectid

将小Parse ID迁移到普通MongoDB的ObjectID

我正在使用Parse Dashboard进行iOS应用程序的用户管理.此外,我正在使用使用MongoDB数据库的外部API.

我目前面临的问题是从Parse Dashboard创建的用户具有较小的id而不是MongoDB的ObjectID,而其他未解析的资源则由普通的ObjectID生成.

例如.用户对象:

{
_id:"qVnyrGynJE",
user_name:"Aditya Raval"
}
Run Code Online (Sandbox Code Playgroud)

文件对象:

{
_id:"507f191e810c19729de860ea",
doc_name:"Marksheet",
user:"qVnyrGynJE"
}
Run Code Online (Sandbox Code Playgroud)

任务对象:

{
_id:"507f191e810c19729de860ea",
task_name:"Marksheet",
user:"qVnyrGynJE"
}
Run Code Online (Sandbox Code Playgroud)

我也使用Keystone.js作为后端管理仪表板.所以基本上由于这种混合类型的KeyStone.js中的ID关系被破坏而Keystone.js崩溃了.

因此,我想通过修复Keystone.js将所有现有的小ID迁移到普通的MongoDB ObjectID,而不会破坏关系或任何其他演练.

mongodb node.js objectid parse-server keystonejs

10
推荐指数
1
解决办法
250
查看次数

核心数据对象ID与永久对象ID

这个问题可能看起来像以前被问过很多次,但我不确定我是否正确地汇总了答案.所以这里.

Apple(WWDC 2012 Session 214)将ObjectID描述为上下文安全的线程安全的.所以我花了一些时间来转换我的代码以利用它.但是,它看起来并不像上下文一样安全,因为这里 讨论的核心数据:子上下文是否会为新插入的对象获取永久的objectID?在其他地方,存在称为永久ID的东西.

关于这个永久性ID业务,我查看了NSManagedObjectContext.h:

/* Converts the object IDs of the specified objects to permanent IDs.  This implementation
will convert the object ID of each managed object in the specified array to a permanent
ID.  Any object in the target array with a permanent ID will be ignored;  additionally,
any managed object in the array not already assigned to a store will be assigned, based on
the same rules Core Data uses for assignment …
Run Code Online (Sandbox Code Playgroud)

core-data objective-c nsmanagedobjectcontext ios objectid

9
推荐指数
1
解决办法
1577
查看次数

如何在MongoDB中返回文档的ObjectId或_id?和错误"$ in需要一个数组"

我在MongoDB中有一个文档,我想得到这个文档的ObjectId,但到目前为止我还没有找到一个对我这样做的方法.

查询示例:

 user= db.users.find({userName:"Andressa"})
Run Code Online (Sandbox Code Playgroud)

这返回:

 { "_id" : ObjectId("53b1c579bdf3de74f76bdac9"), "userid" : 0, "userName" : "Andressa", "userEmail" : "dessa_beca@hotmail.com", "teams" : [ 1, 2, 3 ] }
Run Code Online (Sandbox Code Playgroud)

我想让ObjectId做另一个查询.

例:

 userID =  `user._id();` //but this does not work, of course, its an example
Run Code Online (Sandbox Code Playgroud)

所以,我可以使用ObjectId来执行另一个查询,如下所示:

 userFind = db.users.find({_id: userID})
Run Code Online (Sandbox Code Playgroud)

更新:此代码:

 db.teams.find({_id:{$in: user.teams}})
Run Code Online (Sandbox Code Playgroud)

返回此错误:

error: {
    "$err" : "Can't canonicalize query: BadValue $in needs an array",
    "code" : 17287
Run Code Online (Sandbox Code Playgroud)

有人知道吗?

mongodb nosql objectid

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

mgo将bson.objectId转换为html模板中的字符串(十六进制)

我知道这个问题可能与问题重复.但到目前为止还没有得到满意的答案.我真的想引起一些关注,尽快找到解决方案.所以我请求你不要关闭这个问题,除非你有解决方案并在前一个问题中回答:-)

我将描述说服的问题:

我有一个存储在mongodb中的数据结构,众所周知,_idmongodb是一个bson.ObjectId类型,我可以用这样的方式检索它:

type Data struct {
    Id bson.ObjectId `bson:"_id,omitempty"`
    Content string `bson:"content"`
}
Run Code Online (Sandbox Code Playgroud)

然后我Data通过查找特定的查询条件得到了一片,并使用该片段http/template来渲染前端视图.为了操作切片中的每个项目,我想使用该Id字段,但在使用时:

{{range $key, $value := .DataSlice}}
  <td>{{$value.Id}}</td>
{{end}}
Run Code Online (Sandbox Code Playgroud)

那只是给出了一种类似的字符串ObjectIdHex("550146d1b51bc1c208d1924d")而不是550146d1b51bc1c208d1924d哪种字符串很好且易于使用.

重复的问题.操作人员说,他找到了一种解决方法,通过"添加Id_String"原始数据结构来解决这个问题.但我真的不知道该怎么做?这是指在检索后分配它吗?由于我使用切片来存储检索到的数据,因此切片中的数据无法轻易更改.这样做比使用jquery做前端的工作要复杂得多.但这样做只会让我心爱的Go: - (.

那么还有更好的方法吗?

go mgo objectid go-html-template

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

如何获取对象的eclipse调试ID?

是否有可能以编程方式获取对象id,这可以在eclipse的调试工具提示中看到?

在此输入图像描述

eclipse debugging objectid

8
推荐指数
1
解决办法
4805
查看次数

使用Mongoose通过ObjectId查找MongoDB文档

我试图通过ObjectId找到它来更新MongoDB中的文档.工作流程如下(这是针对博客).

  1. 通过传递标题和正文在MongoDB中创建一个新帖子.ObjectId是自动创建的.
  2. 去编辑帖子.它使用URL中的ObjectId从数据库中获取它,并将其显示在相同的新帖子表单中,只显示预先存在的值.
  3. 单击提交按钮时,我想通过ObjectId查找文档,并使用post表单中的值更新数据库中的值.

第1步和第2步工作正常,但第3步似乎不起作用.它重定向到我需要它的页面.但数据库尚未更新.它与以前的价值相同.

以下是更新帖子部分的相关代码:

app.js

app.post "/office/post/:id/update", ensureAuthenticated, routes.updatePost
Run Code Online (Sandbox Code Playgroud)

路线/ index.js

mongoose = require 'mongoose'
ObjectId = mongoose.Types.ObjectId

Post = require '../models/Post'

...

updatePost: function(req, res) {
  var o_id, the_id;

  the_id = req.params.id;
  console.log(the_id); // 510e05114e2fd6ce61000001

  o_id = ObjectId.fromString(the_id);
  console.log(o_id); // 510e05114e2fd6ce61000001

  return Post.update({
    "_id": ObjectId.fromString(the_id)
  }, {
    "title": "CHANGE"
  }, res.redirect("/office/edit/posts"));
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Express和Mongoose.

如果有帮助,这也是帖子模型:

(function() {
  var Post, Schema, mongoose;

  mongoose = require('mongoose');

  Schema = mongoose.Schema;

  Post = new Schema({
    title: String,
    subhead: String,
    body: String,
    publish_date: …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js express objectid

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

Mongotemplate - 根据大于(gt)或小于(lt)运算符查询ObjectId

当我将它输入我的consol时,它可以工作:

db.posts.find({"_id": {$lt:ObjectId("55732dccf58c555b6d3f1c5a")}}).limit(5).sort({"_id":-1})
Run Code Online (Sandbox Code Playgroud)

当我使用mongotemplate时,它不起作用并返回一个空白数组:

  @RequestMapping(value="/next", method=RequestMethod.GET)
  public List getNextPost(@RequestParam String next) {
      Query query = new Query();
      query.addCriteria(Criteria.where("_id").lt("55732dccf58c555b6d3f1c5a"));
      List<Posts> posts = template.find(query, Posts.class);
      return posts;

  }
Run Code Online (Sandbox Code Playgroud)

我尝试使用此查询,它可以工作,但只返回与id相关的特定条目:

query.addCriteria(Criteria.where("_id").is("55732dccf58c555b6d3f1c5a"));
Run Code Online (Sandbox Code Playgroud)

我也试过Basic Query并做了这个,它也返回一个空白数组:

BasicQuery query1 = new BasicQuery("{'_id': {$lt:'ObjectId(\"55732dccf58c555b6d3f1c5a\")'}}).limit(5).sort({'_id':-1}");
Run Code Online (Sandbox Code Playgroud)

我很难过.如何在数据库中返回某个Mongo ObjectID下面的所有文档?

mongodb spring-data objectid

8
推荐指数
1
解决办法
8433
查看次数

猫鼬中如果没有“new”,则无法调用类构造函数 ObjectId

当我通过 API 请求从前端向后端发送数据时,出现以下错误:

在 mongoose 中,如果没有“new”,则无法调用类构造函数 ObjectId,

我尝试转换为字符串和整数,但没有成功......

mongoose node.js objectid

8
推荐指数
2
解决办法
9432
查看次数

如何在pydantic模型中解析ObjectId?

我正在尝试将 MongoDB 记录解析为 pydantic 模型,但未能这样做 ObjectId

据我了解,我需要为 ObjectId 设置验证器,并尝试扩展 ObjectId 类并validator使用 ObjectId将装饰器添加到我的类中。我做了如下。

from pydantic import BaseModel, validator
from bson.objectid import ObjectId


class ObjectId(ObjectId):
    pass
    @classmethod
    def __get_validators__(cls):
        yield cls.validate
    @classmethod
    def validate(cls, v):
        if not isinstance(v, ObjectId):
            raise TypeError('ObjectId required')
        return str(v)


class User(BaseModel):
    who: ObjectId


class User1(BaseModel):
    who: ObjectId
    @validator('who')
    def validate(cls, v):
        if not isinstance(v, ObjectId):
            raise TypeError('ObjectId required')
        return str(v)

data = {"who":ObjectId('123456781234567812345678')}
Run Code Online (Sandbox Code Playgroud)

不幸的是,两个“解决方案”都失败了,如下所示:

>>> test = User(**data)
Traceback (most recent call last):
  File "<stdin>", …
Run Code Online (Sandbox Code Playgroud)

python parsing mongodb objectid pydantic

7
推荐指数
3
解决办法
4958
查看次数

从 MongoDB Atlas 获取数据时出现“ObjectId' object is not iterable”错误

好吧,如果我没有多大意义,请原谅我。'ObjectId' object is not iterable每当我运行这些collections.find()功能时,我都会遇到这种情况。通过这里的答案,我不知道从哪里开始。我是编程新手,请多多包涵。

每次我到达应该从 Mongodb 获取数据的路线时,我都会得到ValueError: [TypeError("'ObjectId' object is not iterable"), TypeError('vars() argument must have __dict__ attribute')].

帮助

python api mongodb objectid

7
推荐指数
4
解决办法
3522
查看次数